From 3dfb019b0a81112b2023dd94ad644739ff147f08 Mon Sep 17 00:00:00 2001 From: david steinsland Date: Sun, 10 Nov 2024 19:23:25 +0100 Subject: [PATCH] returnerer kun hvis antallet er samme 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 --- .../github/navikt/tbd_libs/test_support/KafkaContainer.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kafka-test/src/main/kotlin/com/github/navikt/tbd_libs/test_support/KafkaContainer.kt b/kafka-test/src/main/kotlin/com/github/navikt/tbd_libs/test_support/KafkaContainer.kt index 51190c8..f0c5c27 100644 --- a/kafka-test/src/main/kotlin/com/github/navikt/tbd_libs/test_support/KafkaContainer.kt +++ b/kafka-test/src/main/kotlin/com/github/navikt/tbd_libs/test_support/KafkaContainer.kt @@ -64,7 +64,6 @@ class KafkaContainer( } private suspend fun fåTopicsOrThrow(antall: Int, timeout: Duration): List { return withTimeoutOrNull(timeout.toKotlinDuration()) { - var claimedTopics: List = 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: @@ -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 = fåTopics(antall) + if (claimedTopics.size == antall) return@withTimeoutOrNull claimedTopics droppTopics(claimedTopics) - claimedTopics = fåTopics(antall) } - claimedTopics + return@withTimeoutOrNull null } ?.also { println("> Får topic ${it.joinToString { it.topicnavn} }")