MVar

object MVar

Builders for MVar.

Builders for MVar.

Companion
class
class Object
trait Matchable
class Any

Type members

Classlikes

final class ApplyBuilders[F[_]](val F: Concurrent[F]) extends AnyVal

Returned by the apply builder.

Returned by the apply builder.

Value members

Concrete methods

def apply[F[_]](F: Concurrent[F]): ApplyBuilders[F]

Builds an MVar value for F data types that are Concurrent.

Builds an MVar value for F data types that are Concurrent.

Due to Concurrent's capabilities, the yielded values by MVar.take and MVar.put are cancelable.

This builder uses the Partially-Applied Type technique.

For creating an empty MVar:

 MVar[IO].empty[Int] <-> MVar.empty[IO, Int]

For creating an MVar with an initial value:

 MVar[IO].init("hello") <-> MVar.init[IO, String]("hello")
See also

ofand empty

def empty[F[_], A](F: Concurrent[F]): F[MVar2[F, A]]

Creates a cancelable MVar that starts as empty.

Creates a cancelable MVar that starts as empty.

Value Params
F

is a Concurrent constraint, needed in order to describe cancelable operations

See also

uncancelableEmpty for non-cancelable MVars

def emptyIn[F[_], G[_], A](F: Sync[F], G: Concurrent[G]): F[MVar2[G, A]]

Like empty but initializes state using another effect constructor

Like empty but initializes state using another effect constructor

def in[F[_], G[_], A](initial: A)(F: Sync[F], G: Concurrent[G]): F[MVar2[G, A]]

Like of but initializes state using another effect constructor

Like of but initializes state using another effect constructor

def of[F[_], A](initial: A)(F: Concurrent[F]): F[MVar2[F, A]]

Creates a cancelable MVar that's initialized to an initial value.

Creates a cancelable MVar that's initialized to an initial value.

Value Params
F

is a Concurrent constraint, needed in order to describe cancelable operations

initial

is a value that will be immediately available for the first read or take operation

See also

uncancelableOf for non-cancelable MVars

def uncancelableEmpty[F[_], A](F: Async[F]): F[MVar2[F, A]]

Creates a non-cancelable MVar that starts as empty.

Creates a non-cancelable MVar that starts as empty.

The resulting MVar has non-cancelable operations.

WARN: some Async data types, like IO, can be cancelable, making uncancelable values unsafe. Such values are only useful for optimization purposes, in cases where the use case does not require cancellation or in cases in which an F[_] data type that does not support cancellation is used.

See also

empty for creating cancelable MVars

def uncancelableEmptyIn[F[_], G[_], A](F: Sync[F], G: Async[G]): F[MVar2[G, A]]

Like uncancelableEmpty but initializes state using another effect constructor

Like uncancelableEmpty but initializes state using another effect constructor

def uncancelableIn[F[_], G[_], A](initial: A)(F: Sync[F], G: Async[G]): F[MVar2[G, A]]

Like uncancelableOf but initializes state using another effect constructor

Like uncancelableOf but initializes state using another effect constructor

def uncancelableOf[F[_], A](initial: A)(F: Async[F]): F[MVar2[F, A]]

Creates a non-cancelable MVar that's initialized to an initial value.

Creates a non-cancelable MVar that's initialized to an initial value.

The resulting MVar has non-cancelable operations.

WARN: some Async data types, like IO, can be cancelable, making uncancelable values unsafe. Such values are only useful for optimization purposes, in cases where the use case does not require cancellation or in cases in which an F[_] data type that does not support cancellation is used.

See also

of for creating cancelable MVars