arrow-fx / arrow.fx.extensions / IOConcurrent

IOConcurrent

interface ~~IOConcurrent~~ : Concurrent<ForIO>, IOAsync 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/

Functions

cancellable Creates a cancellable F instance that executes an asynchronous process on evaluation. Derived from async and bracketCase.open fun <A> cancellable(k: ((Either<Throwable, A>) -> Unit) -> CancelToken<ForIO>): Kind<ForIO, A>
cancellableF Builder to create a cancellable F instance that executes an asynchronous process on evaluation. Function derived from async and bracketCase.open fun <A> cancellableF(k: ((Either<Throwable, A>) -> Unit) -> IOOf<CancelToken<ForIO>>): IO<A>
fork Create a new F that upon execution starts the receiver F within a Fiber on this@fork.open fun <A> Kind<ForIO, A>.fork(coroutineContext: CoroutineContext): IO<Fiber<ForIO, A>>
parTupledN Map two tasks in parallel within a new F on ctx.open fun <A, B> parTupledN(ctx: CoroutineContext, fa: Kind<ForIO, A>, fb: Kind<ForIO, B>): IO<Tuple2<A, B>>open fun <A, B, C> parTupledN(ctx: CoroutineContext, fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>): IO<Tuple3<A, B, C>>
raceN Race two tasks concurrently within a new F on this@raceN. At the end of the race it automatically cancels the loser.open fun <A, B> CoroutineContext.raceN(fa: Kind<ForIO, A>, fb: Kind<ForIO, B>): IO<Race2<A, B>>open fun <A, B, C> CoroutineContext.raceN(fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>): IO<Race3<A, B, C>>
racePair Race two tasks concurrently within a new F. Race results in a winner and the other, yet to finish task running in a Fiber.open fun <A, B> CoroutineContext.racePair(fa: Kind<ForIO, A>, fb: Kind<ForIO, B>): IO<RacePair<ForIO, A, B>>
raceTriple Race three tasks concurrently within a new F. Race results in a winner and the others, yet to finish task running in a Fiber.open fun <A, B, C> CoroutineContext.raceTriple(fa: Kind<ForIO, A>, fb: Kind<ForIO, B>, fc: Kind<ForIO, C>): IO<RaceTriple<ForIO, A, B, C>>

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>>

Inheritors

IOConcurrentEffect interface ~~IOConcurrentEffect~~ : ConcurrentEffect<ForIO>, IOEffect, IOConcurrent
IODefaultConcurrent interface ~~IODefaultConcurrent~~ : Concurrent<ForIO>, IOConcurrent

Do you like Arrow?

Arrow Org
<