simon.vergauwen
02/04/2019, 1:25 PMstartCoroutineCancellable?altavir
02/04/2019, 1:30 PMstartCoroutineCancellable?simon.vergauwen
02/04/2019, 1:32 PMsimon.vergauwen
02/04/2019, 1:34 PMaltavir
02/04/2019, 1:35 PMkotlinx.coroutinessimon.vergauwen
02/04/2019, 1:35 PMaltavir
02/04/2019, 1:36 PMsimon.vergauwen
02/04/2019, 1:36 PMaltavir
02/04/2019, 1:37 PMsimon.vergauwen
02/04/2019, 1:38 PMScope and Jobsimon.vergauwen
02/04/2019, 1:39 PMstartCancellableContinuationVsevolod Tolstopyatov [JB]
02/04/2019, 1:56 PMstartCoroutineCancellable is internal API and is not intended to be used externally.
E.g. it is cancellable only when it is used with interceptor from kotlinx.coroutines and when used on instance of DispatchedContinuationsimon.vergauwen
02/04/2019, 1:57 PMstartCoroutine to bridge between suspending world and non suspending world but there is no way to take in account cancellation as far as I know.Vsevolod Tolstopyatov [JB]
02/04/2019, 1:57 PMVsevolod Tolstopyatov [JB]
02/04/2019, 1:58 PMsuspendCancellableCoroutinesimon.vergauwen
02/04/2019, 2:03 PMsuspend () -> A on a given CoroutineContext within a Continuation.simon.vergauwen
02/04/2019, 2:04 PMclass Fx<A>(val fa: suspend () -> A) {
...
fun startOn(ctx: CoroutineContext): Fx<Fiber<ForFx, A>> =
Fx {
val promise = UnsafePromise<A>()
fa.startCoroutine(asyncContinuation(ctx) { either ->
either.fold(
{ promise.complete(it.left()) },
{ promise.complete(it.right()) }
)
})
val cancel: Fx<Unit> = Fx { Unit /* cancel running coroutine */ }
FxFiber(promise, cancel)
}
}simon.vergauwen
02/04/2019, 2:05 PMval cancel: Fx<Unit> = Fx { Unit /* cancel running coroutine */ }is the piece of code I am still missing
simon.vergauwen
02/04/2019, 2:06 PMPair(join, cancel)simon.vergauwen
02/04/2019, 5:44 PM