Module Ccell.Event.Cell


module Cell: sig .. end
thread safe reference cell.

type 'a t 
val make : unit -> 'a t
make () makes an empty mutable shared variable.
val init_make : 'a -> 'a t
init_make x makes a shared variable initialy has x.
val read : 'a t -> 'a Ccell.Event.event
read m returns a value from m. Blocked if i is empty.
val take : 'a t -> 'a Ccell.Event.event
Almost same as read, but take operation makes m empty.
val put : 'a t -> 'a -> unit Ccell.Event.event
put m v puts the value v to varible m when it's empty. If the variable m is full, blocked until the variable be empty by other threads.