BlockingVar

turbolift.io.BlockingVar
See theBlockingVar companion object
final class BlockingVar[S](_initial: S) extends Get[S], Put[S]

Concurrent mutable variable.

Like AtomicVar, but blocks on contention instead spinning.

Attributes

Companion
object
Graph
Supertypes
trait Put[S]
trait Get[S]
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def asGet: Get[S]
def asPut: Put[S]
override def get: Computation[S, IO]

Attributes

Definition Classes
Get
def getModify(f: S => S): Computation[S, IO]
def getModifyEff[U <: IO](f: S => Computation[S, U]): Computation[S, U]
def getModifyGet(f: S => S): Computation[(S, S), IO]
def getModifyGetEff[U <: IO](f: S => Computation[S, U]): Computation[(S, S), U]
def getUpdate[A](f: S => (A, S)): Computation[(A, S), IO]
def getUpdateEff[A, U <: IO](f: S => Computation[(A, S), U]): Computation[(A, S), U]
def getUpdateGet[A](f: S => (A, S)): Computation[(A, S, S), IO]
def getUpdateGetEff[A, U <: IO](f: S => Computation[(A, S), U]): Computation[(A, S, S), U]
override def gets[A](f: S => A): Computation[A, IO]

Attributes

Definition Classes
Get
def modify(f: S => S): Computation[Unit, IO]
def modifyEff[U <: IO](f: S => Computation[S, U]): Computation[Unit, U]
def modifyGet(f: S => S): Computation[S, IO]
def modifyGetEff[U <: IO](f: S => Computation[S, U]): Computation[S, U]
override def put(s: S): Computation[Unit, IO]

Attributes

Definition Classes
Put
def swap(s0: S): Computation[S, IO]
def swapEff[U <: IO](ss: Computation[S, U]): Computation[S, U]
def update[A](f: S => (A, S)): Computation[A, IO]
def updateEff[A, U <: IO](f: S => Computation[(A, S), U]): Computation[A, U]
def updateGet[A](f: S => (A, S)): Computation[(A, S), IO]
def updateGetEff[A, U <: IO](f: S => Computation[(A, S), U]): Computation[(A, S), U]