File tree Expand file tree Collapse file tree 6 files changed +28
-6
lines changed
common/kotlinx-coroutines-core-common/src
core/kotlinx-coroutines-core/src
js/kotlinx-coroutines-core-js/src
native/kotlinx-coroutines-core-native/src Expand file tree Collapse file tree 6 files changed +28
-6
lines changed Original file line number Diff line number Diff line change @@ -218,6 +218,7 @@ internal interface DispatchedTask<in T> : SchedulerTask {
218218 (state as ? CompletedExceptionally )?.cause
219219
220220 public override fun run () {
221+ val taskContext = this .taskContext
221222 try {
222223 val delegate = delegate as DispatchedContinuation <T >
223224 val continuation = delegate.continuation
@@ -238,7 +239,7 @@ internal interface DispatchedTask<in T> : SchedulerTask {
238239 } catch (e: Throwable ) {
239240 throw DispatchException (" Unexpected exception running $this " , e)
240241 } finally {
241- afterTask()
242+ afterTask(taskContext )
242243 }
243244 }
244245}
Original file line number Diff line number Diff line change @@ -8,4 +8,8 @@ internal expect interface SchedulerTask : Runnable
88
99internal expect abstract class SchedulerTaskBase () : SchedulerTask
1010
11- internal expect inline fun SchedulerTask.afterTask ()
11+ internal expect interface SchedulerTaskContext
12+
13+ internal expect val SchedulerTask .taskContext: SchedulerTaskContext
14+
15+ internal expect inline fun SchedulerTask.afterTask (taskContext : SchedulerTaskContext )
Original file line number Diff line number Diff line change @@ -13,5 +13,11 @@ internal actual abstract class SchedulerTaskBase actual constructor() : Schedule
1313 override var taskContext: TaskContext = NonBlockingContext
1414}
1515
16+ internal actual typealias SchedulerTaskContext = TaskContext
17+
18+ @Suppress(" EXTENSION_SHADOWED_BY_MEMBER" )
19+ internal actual val SchedulerTask .taskContext: SchedulerTaskContext get() = taskContext
20+
1621@Suppress(" NOTHING_TO_INLINE" )
17- internal actual inline fun SchedulerTask.afterTask () = taskContext.afterTask()
22+ internal actual inline fun SchedulerTask.afterTask (taskContext : SchedulerTaskContext ) =
23+ taskContext.afterTask()
Original file line number Diff line number Diff line change @@ -88,6 +88,7 @@ internal interface Task : Runnable {
8888 val mode: TaskMode get() = taskContext.taskMode
8989}
9090
91+ // Non-reusable Task implementation to wrap Runnable instances that do not otherwise implement task
9192internal class TaskImpl (
9293 @JvmField val block : Runnable ,
9394 override var submissionTime : Long ,
@@ -97,7 +98,7 @@ internal class TaskImpl(
9798 try {
9899 block.run ()
99100 } finally {
100- afterTask()
101+ afterTask(taskContext )
101102 }
102103 }
103104
Original file line number Diff line number Diff line change @@ -9,6 +9,11 @@ internal actual typealias SchedulerTask = Runnable
99
1010internal actual abstract class SchedulerTaskBase actual constructor() : SchedulerTask
1111
12+ @Suppress(" ACTUAL_WITHOUT_EXPECT" )
13+ internal actual typealias SchedulerTaskContext = Unit
14+
15+ internal actual val SchedulerTask .taskContext: SchedulerTaskContext get() = Unit
16+
1217@Suppress(" NOTHING_TO_INLINE" )
13- internal actual inline fun SchedulerTask.afterTask () {}
18+ internal actual inline fun SchedulerTask.afterTask (taskContext : SchedulerTaskContext ) {}
1419
Original file line number Diff line number Diff line change @@ -9,5 +9,10 @@ internal actual typealias SchedulerTask = Runnable
99
1010internal actual abstract class SchedulerTaskBase actual constructor() : SchedulerTask
1111
12+ @Suppress(" ACTUAL_WITHOUT_EXPECT" )
13+ internal actual typealias SchedulerTaskContext = Unit
14+
15+ internal actual val SchedulerTask .taskContext: SchedulerTaskContext get() = kotlin.Unit
16+
1217@Suppress(" NOTHING_TO_INLINE" )
13- internal actual inline fun SchedulerTask.afterTask () {}
18+ internal actual inline fun SchedulerTask.afterTask (taskContext : SchedulerTaskContext ) {}
You can’t perform that action at this time.
0 commit comments