2 * 2004 Matthew Fluet (mfluet@acm.org)
3 * Ported to MLton threads.
8 * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
9 * COPYRIGHT (c) 1989-1991 John H. Reppy
11 * The implementation of Id-style synchronizing memory cells (I-structures
18 type 'a ivar (* I-structure variable *)
19 type 'a mvar (* M-structure variable *)
21 exception Put (* raised on put operations to full cells *)
23 val iVar : unit -> 'a ivar
24 val iPut : ('a ivar * 'a) -> unit
25 val iGet : 'a ivar -> 'a
26 val iGetEvt : 'a ivar -> 'a CML.event
27 val iGetPoll : 'a ivar -> 'a option
28 val sameIVar : ('a ivar * 'a ivar) -> bool
30 val mVar : unit -> 'a mvar
31 val mVarInit : 'a -> 'a mvar
32 val mPut : ('a mvar * 'a) -> unit
33 val mTake : 'a mvar -> 'a
34 val mTakeEvt : 'a mvar -> 'a CML.event
35 val mTakePoll : 'a mvar -> 'a option
36 val mGet : 'a mvar -> 'a
37 val mGetEvt : 'a mvar -> 'a CML.event
38 val mGetPoll : 'a mvar -> 'a option
39 val mSwap : ('a mvar * 'a) -> 'a
40 val mSwapEvt : ('a mvar * 'a) -> 'a CML.event
41 val sameMVar : ('a mvar * 'a mvar) -> bool
44 signature SYNC_VAR_EXTRA =