jvmTest.channels.DoubleChannelCloseStressTest.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kotlinx-coroutines-core
Show all versions of kotlinx-coroutines-core
Coroutines support libraries for Kotlin
/*
* Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
package kotlinx.coroutines.channels
import kotlinx.coroutines.*
import org.junit.*
class DoubleChannelCloseStressTest : TestBase() {
private val nTimes = 1000 * stressTestMultiplier
@Test
fun testDoubleCloseStress() {
repeat(nTimes) {
val actor = GlobalScope.actor(CoroutineName("actor"), start = CoroutineStart.LAZY) {
// empty -- just closes channel
}
GlobalScope.launch(CoroutineName("sender")) {
try {
actor.send(1)
} catch (e: ClosedSendChannelException) {
// ok -- closed before send
}
}
Thread.sleep(1)
actor.close()
}
}
}