Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/cml/cml-lib/old-cml-sig.sml
ViewVC logotype

Annotation of /sml/trunk/src/cml/cml-lib/old-cml-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (view) (download)

1 : monnier 2 (* old-cml-sig.sml
2 :     *
3 :     * COPYRIGHT (c) 1990 by John H. Reppy. See COPYRIGHT file for details.
4 :     *
5 :     * This is essentially the 0.9.8 version of the core CML interface. The only
6 :     * thing missing is poll and the low-level I/O synchronization. Also, there
7 :     * is an additional substructure (NewCML), to allow access to the new features.
8 :     *)
9 :    
10 :     signature OLD_CML =
11 :     sig
12 :    
13 :     structure NewCML : CML
14 :    
15 :     val version : {major : int, minor : int, rev : int, date : string}
16 :     val versionName : string
17 :    
18 :     (** events **)
19 :     type 'a event
20 :    
21 :     val sync : 'a event -> 'a
22 :     val select : 'a event list -> 'a
23 :    
24 :     val choose : 'a event list -> 'a event
25 :    
26 :     val guard : (unit -> 'a event) -> 'a event
27 :    
28 :     val wrap : ('a event * ('a -> 'b)) -> 'b event
29 :     val wrapHandler : ('a event * (exn -> 'a)) -> 'a event
30 :     val wrapAbort : ('a event * (unit -> unit)) -> 'a event
31 :    
32 :     val always : 'a -> 'a event
33 :     val ALWAYS : unit event (** for backward compatibility **)
34 :    
35 :     (** threads **)
36 :     type thread_id
37 :    
38 :     val spawn : (unit -> unit) -> thread_id
39 :    
40 :     val yield : unit -> unit
41 :     val exit : unit -> 'a
42 :    
43 :     val getTid : unit -> thread_id
44 :     val sameThread : (thread_id * thread_id) -> bool
45 :     val tidLessThan : (thread_id * thread_id) -> bool
46 :     val tidToString : thread_id -> string
47 :    
48 :     val threadWait : thread_id -> unit event
49 :    
50 :     (** condition variables **)
51 :     type 'a cond_var
52 :    
53 :     val condVar : unit -> '1a cond_var
54 :    
55 :     val writeVar : ('a cond_var * 'a) -> unit
56 :     exception WriteTwice
57 :    
58 :     val readVar : 'a cond_var -> 'a
59 :     val readVarEvt : 'a cond_var -> 'a event
60 :    
61 :     (** channels **)
62 :     type 'a chan
63 :    
64 :     (* +DEBUG **
65 :     val dumpCh : 'a chan -> string
66 :     ** -DEBUG *)
67 :     val channel : unit -> '1a chan
68 :    
69 :     val send : ('a chan * 'a) -> unit
70 :     val sendc : 'a chan -> 'a -> unit
71 :     val accept : 'a chan -> 'a
72 :    
73 :     val sameChannel : ('a chan * 'a chan) -> bool
74 :    
75 :     val transmit : ('a chan * 'a) -> unit event
76 :     val transmitc : 'a chan -> 'a -> unit event
77 :     val receive : 'a chan -> 'a event
78 :    
79 :     (** real-time synchronization **)
80 :     val waitUntil : Time.time -> unit event
81 :     val timeout : Time.time -> unit event
82 :    
83 :     end (* signature CONCUR_ML *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0