arrow-fx / arrow.fx.typeclasses / ConcurrentContinuation

ConcurrentContinuation

open class ~~ConcurrentContinuation~~<F, A> : AsyncContinuation<F, A>, Concurrent<F>, ConcurrentSyntax<F> Deprecated: The IO datatype and it’s related type classes will disappear in Arrow 0.13.0. All useful operations are offered directly over suspend functions by Arrow Fx Coroutines. https://arrow-kt.io/docs/fx/async/

Constructors

<init> ConcurrentContinuation(CF: Concurrent<F>, context: CoroutineContext = EmptyCoroutineContext)

Properties

context open val context: CoroutineContext
fx Entry point for monad bindings which enables for comprehensions. The underlying impl is based on coroutines. A coroutines is initiated and inside AsyncContinuation suspended yielding to Monad.flatMap. Once all the flatMap binds are completed the underlying monad is returned from the act of executing the coroutineopen val fx: ConcurrentFx<F>

Functions

MVar Create an empty MVar or mutable variable structure to be used for thread-safe sharing.open fun <A> MVar(): Kind<F, MVar<F, A>>
Create a MVar or mutable variable structure to be used for thread-safe sharing, initialized to a value a.open fun <A> MVar(a: A): Kind<F, MVar<F, A>>
Promise Create a pure Promise that is empty and can be filled exactly once.open fun <A> Promise(): Kind<F, Promise<F, A>>
Semaphore Create a pure Semaphore that can be used to control access in a concurrent system.open fun Semaphore(n: Long): Kind<F, Semaphore<F>>

Extension Functions

parMapN fun <A, B, C, D, E, G, H> Concurrent<ForIO>.~~parMapN~~(ctx: CoroutineContext, fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>, fd: Kind<ForIO, D>, fe: Kind<ForIO, E>, fg: Kind<ForIO, G>, f: (Tuple6<A, B, C, D, E, G>) -> H): IO<H>
fun <F, A, B, C, D, E, G, H, I> Concurrent<F>.~~parMapN~~(ctx: CoroutineContext, fa: Kind<F, A>, fb: Kind<F, B>, fc: Kind<F, C>, fd: Kind<F, D>, fe: Kind<F, E>, fg: Kind<F, G>, fh: Kind<F, H>, f: (Tuple7<A, B, C, D, E, G, H>) -> I): Kind<F, I>
parTupledN fun <A, B, C, D, E> Concurrent<ForIO>.~~parTupledN~~(ctx: CoroutineContext, fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>, fd: Kind<ForIO, D>, fe: Kind<ForIO, E>): IO<Tuple5<A, B, C, D, E>>
fun <A, B, C, D, E, G> Concurrent<ForIO>.~~parTupledN~~(ctx: CoroutineContext, fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>, fd: Kind<ForIO, D>, fe: Kind<ForIO, E>, fg: Kind<ForIO, G>): IO<Tuple6<A, B, C, D, E, G>>

Do you like Arrow?

Arrow Org
<