blob: 0a53a25da125a175c6d303f4925f04d444bcae0c [file] [log] [blame]
package kotlinx.coroutines.experimental.io
import kotlinx.coroutines.experimental.*
import kotlin.coroutines.experimental.CoroutineContext
internal open class ByteChannelCoroutine(
parentContext: CoroutineContext,
open val channel: ByteChannel
) : AbstractCoroutine<Unit>(parentContext, active = true) {
override fun afterCompletion(state: Any?, mode: Int) {
val cause = (state as? CompletedExceptionally)?.cause
if (!channel.close(cause) && cause != null)
handleCoroutineException(context, cause)
super.afterCompletion(state, mode)
}
}