Skip to content

Commit

Permalink
returnerer kun hvis antallet er samme
Browse files Browse the repository at this point in the history
det kunne forekomme at det ble returnert en tom liste.
en faktisk liste skal bli returnert bare hvis det er "antall" elementer i listen, ellers null
  • Loading branch information
davidsteinsland committed Nov 10, 2024
1 parent e9febff commit 3dfb019
Showing 1 changed file with 4 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ class KafkaContainer(
}
private suspend fun fåTopicsOrThrow(antall: Int, timeout: Duration): List<TestTopic> {
return withTimeoutOrNull(timeout.toKotlinDuration()) {
var claimedTopics: List<TestTopic> = emptyList()
// implementerer en "alt eller ingenting"-algoritme siden det kan være begrenset
// mengde topics tilgjengelig og at det kan være flere tråder som konkurrerer om samme ressurs (potensiell deadlock).
// Eksempel:
Expand All @@ -73,11 +72,12 @@ class KafkaContainer(
// Begge får én topic hver, og så står begge to og venter på siste — men det er jo ingen igjen!
// Derfor gjør vi et forsøk på å få 2 stk med en gang, eller så gir vi tilbake det vi fikk. Før eller
// siden vil en av trådene kunne få to topics hver.
while (isActive && claimedTopics.size != antall) {
while (isActive) {
val claimedTopics =Topics(antall)
if (claimedTopics.size == antall) return@withTimeoutOrNull claimedTopics
droppTopics(claimedTopics)
claimedTopics =Topics(antall)
}
claimedTopics
return@withTimeoutOrNull null
}
?.also {
println("> Får topic ${it.joinToString { it.topicnavn} }")
Expand Down

0 comments on commit 3dfb019

Please sign in to comment.