blob: 4fb958ac7db0c5fd949c9fa3d4216e5a31180b3c [file] [log] [blame]
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +03001/*
Aurimas Liutikasc8879d62021-05-12 21:56:16 +00002 * Copyright 2016-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +03003 */
4
5package kotlinx.coroutines.flow.internal
6
7import kotlinx.coroutines.*
Vsevolod Tolstopyatovecbfa6d2019-10-21 20:25:45 +03008import kotlinx.coroutines.flow.*
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +03009
Vsevolod Tolstopyatovecbfa6d2019-10-21 20:25:45 +030010internal actual class AbortFlowException actual constructor(
11 actual val owner: FlowCollector<*>
12) : CancellationException("Flow was aborted, no more elements needed") {
13
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +030014 override fun fillInStackTrace(): Throwable {
Vsevolod Tolstopyatovcfb3ff92020-03-16 12:36:08 +030015 if (DEBUG) return super.fillInStackTrace()
16 // Prevent Android <= 6.0 bug, #1866
17 stackTrace = emptyArray()
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +030018 return this
19 }
20}
21
22internal actual class ChildCancelledException : CancellationException("Child of the scoped flow was cancelled") {
23 override fun fillInStackTrace(): Throwable {
Vsevolod Tolstopyatovcfb3ff92020-03-16 12:36:08 +030024 if (DEBUG) return super.fillInStackTrace()
25 // Prevent Android <= 6.0 bug, #1866
26 stackTrace = emptyArray()
Vsevolod Tolstopyatove2a56712019-06-05 18:40:18 +030027 return this
28 }
29}