aboutsummaryrefslogtreecommitdiffstats
path: root/kotlinx-coroutines-core/jvm/src/channels/Actor.kt
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-23 23:55:41 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2021-08-23 23:55:41 +0000
commitffe1b7dc19f3fbe1bc4a5f4f1e28c64cd68c5371 (patch)
tree747e5be83c6e6a2e2d9a164ebd03c5e45e6ec952 /kotlinx-coroutines-core/jvm/src/channels/Actor.kt
parent2bbecd60d31b5d0b48847f67e741018f5ae7aa07 (diff)
parent531d55eaeac09ad6cde55687ef802d4235040985 (diff)
downloadplatform_external_kotlinx.coroutines-simpleperf-release.tar.gz
platform_external_kotlinx.coroutines-simpleperf-release.tar.bz2
platform_external_kotlinx.coroutines-simpleperf-release.zip
Snap for 7668063 from 531d55eaeac09ad6cde55687ef802d4235040985 to simpleperf-releasesimpleperf-release
Change-Id: I844c9c61f2e31a265c36a483e1509e0e08c508d6
Diffstat (limited to 'kotlinx-coroutines-core/jvm/src/channels/Actor.kt')
-rw-r--r--kotlinx-coroutines-core/jvm/src/channels/Actor.kt12
1 files changed, 11 insertions, 1 deletions
diff --git a/kotlinx-coroutines-core/jvm/src/channels/Actor.kt b/kotlinx-coroutines-core/jvm/src/channels/Actor.kt
index 0212d740..96cda7b1 100644
--- a/kotlinx-coroutines-core/jvm/src/channels/Actor.kt
+++ b/kotlinx-coroutines-core/jvm/src/channels/Actor.kt
@@ -127,7 +127,11 @@ private open class ActorCoroutine<E>(
parentContext: CoroutineContext,
channel: Channel<E>,
active: Boolean
-) : ChannelCoroutine<E>(parentContext, channel, active), ActorScope<E> {
+) : ChannelCoroutine<E>(parentContext, channel, initParentJob = false, active = active), ActorScope<E> {
+
+ init {
+ initParentJob(parentContext[Job])
+ }
override fun onCancelling(cause: Throwable?) {
_channel.cancel(cause?.let {
@@ -159,11 +163,17 @@ private class LazyActorCoroutine<E>(
return super.send(element)
}
+ @Suppress("DEPRECATION_ERROR")
override fun offer(element: E): Boolean {
start()
return super.offer(element)
}
+ override fun trySend(element: E): ChannelResult<Unit> {
+ start()
+ return super.trySend(element)
+ }
+
override fun close(cause: Throwable?): Boolean {
// close the channel _first_
val closed = super.close(cause)