equal
deleted
inserted
replaced
5 *) |
5 *) |
6 |
6 |
7 signature SIMPLE_THREAD = |
7 signature SIMPLE_THREAD = |
8 sig |
8 sig |
9 val is_self: Thread.thread -> bool |
9 val is_self: Thread.thread -> bool |
10 val name: unit -> string option |
10 val get_name: unit -> string option |
|
11 val the_name: unit -> string |
11 type params = {name: string, stack_limit: int option, interrupts: bool} |
12 type params = {name: string, stack_limit: int option, interrupts: bool} |
12 val attributes: params -> Thread.threadAttribute list |
13 val attributes: params -> Thread.threadAttribute list |
13 val fork: params -> (unit -> unit) -> Thread.thread |
14 val fork: params -> (unit -> unit) -> Thread.thread |
14 val join: Thread.thread -> unit |
15 val join: Thread.thread -> unit |
15 val interrupt_unsynchronized: Thread.thread -> unit |
16 val interrupt_unsynchronized: Thread.thread -> unit |
28 local |
29 local |
29 val tag = Universal.tag () : string Universal.tag; |
30 val tag = Universal.tag () : string Universal.tag; |
30 val count = Counter.make (); |
31 val count = Counter.make (); |
31 in |
32 in |
32 |
33 |
33 fun name () = Thread.getLocal tag; |
34 fun get_name () = Thread.getLocal tag; |
34 fun set_name base = Thread.setLocal (tag, base ^ "/" ^ string_of_int (count ())); |
35 |
|
36 fun the_name () = |
|
37 (case get_name () of |
|
38 NONE => raise Fail "Unknown thread name" |
|
39 | SOME name => name); |
|
40 |
|
41 fun set_name base = |
|
42 Thread.setLocal (tag, base ^ "/" ^ string_of_int (count ())); |
35 |
43 |
36 end; |
44 end; |
37 |
45 |
38 |
46 |
39 (* fork *) |
47 (* fork *) |