1 /*
2  * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3  */
4 
5 package kotlinx.coroutines
6 
7 import kotlinx.coroutines.internal.*
8 
9 internal actual abstract class CompletionHandlerBase actual constructor() : LockFreeLinkedListNode(), CompletionHandler {
10     actual abstract override fun invoke(cause: Throwable?)
11 }
12 
13 internal actual inline val CompletionHandlerBase.asHandler: CompletionHandler get() = this
14 
15 internal actual abstract class CancelHandlerBase actual constructor() : CompletionHandler {
16     actual abstract override fun invoke(cause: Throwable?)
17 }
18 
19 internal actual inline val CancelHandlerBase.asHandler: CompletionHandler get() = this
20 
21 @Suppress("NOTHING_TO_INLINE")
22 internal actual inline fun CompletionHandler.invokeIt(cause: Throwable?) = invoke(cause)