Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* event.sig |
2 | * 2004 Matthew Fluet (mfluet@acm.org) | |
3 | * Ported to MLton threads. | |
4 | *) | |
5 | ||
6 | (* events-sig.sml | |
7 | * | |
8 | * COPYRIGHT (c) 1995 AT&T Bell Laboratories. | |
9 | * COPYRIGHT (c) 1989-1991 John H. Reppy | |
10 | * | |
11 | * The representation of event values and the event combinators. | |
12 | *) | |
13 | ||
14 | signature EVENT = | |
15 | sig | |
16 | type 'a event | |
17 | ||
18 | val never : 'a event | |
19 | val alwaysEvt : 'a -> 'a event | |
20 | ||
21 | val wrap : ('a event * ('a -> 'b)) -> 'b event | |
22 | val wrapHandler : ('a event * (exn -> 'a)) -> 'a event | |
23 | ||
24 | val guard : (unit -> 'a event) -> 'a event | |
25 | val withNack : (unit event -> 'a event) -> 'a event | |
26 | ||
27 | val choose : 'a event list -> 'a event | |
28 | val sync : 'a event -> 'a | |
29 | val select : 'a event list -> 'a | |
30 | end | |
31 | ||
32 | signature EVENT_EXTRA = | |
33 | sig | |
34 | include EVENT | |
35 | ||
36 | type 'a status | |
37 | val enabled : {prio : int, doitFn : unit -> 'a} -> 'a status | |
38 | val blocked : ({transId : TransID.trans_id, | |
39 | cleanUp : unit -> unit, | |
40 | next : unit -> Scheduler.rdy_thread} -> 'a) -> 'a status | |
41 | val bevt : (unit -> 'a status) -> 'a event | |
42 | ||
43 | val atomicCVarSet : CVar.cvar -> unit | |
44 | val cvarGetEvt : CVar.cvar -> unit event | |
45 | end |