Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / cml / core-cml / channel.sig
1 (* channel.sig
2 * 2004 Matthew Fluet (mfluet@acm.org)
3 * Ported to MLton threads.
4 *)
5
6 (* channel-sig.sml
7 *
8 * COPYRIGHT (c) 1995 AT&T Bell Laboratories.
9 * COPYRIGHT (c) 1989-1991 John H. Reppy
10 *
11 * The representation of synchronous channels.
12 *)
13
14 signature CHANNEL =
15 sig
16 type 'a chan
17
18 val channel : unit -> 'a chan
19 val sameChannel : ('a chan * 'a chan) -> bool
20
21 val send : ('a chan * 'a) -> unit
22 val recv : 'a chan -> 'a
23
24 val sendEvt : ('a chan * 'a) -> unit Event.event
25 val recvEvt : 'a chan -> 'a Event.event
26
27 val sendPoll : ('a chan * 'a) -> bool
28 val recvPoll : 'a chan -> 'a option
29 end
30
31 signature CHANNEL_EXTRA =
32 sig
33 include CHANNEL
34 (*val resetChan : 'a chan -> unit*)
35 end