equal
deleted
inserted
replaced
6 *) |
6 *) |
7 |
7 |
8 signature SIMPLE_THREAD = |
8 signature SIMPLE_THREAD = |
9 sig |
9 sig |
10 val fork: bool -> (unit -> unit) -> Thread.thread |
10 val fork: bool -> (unit -> unit) -> Thread.thread |
|
11 val interrupt: Thread.thread -> unit |
11 end; |
12 end; |
12 |
13 |
13 structure SimpleThread: SIMPLE_THREAD = |
14 structure SimpleThread: SIMPLE_THREAD = |
14 struct |
15 struct |
15 |
16 |
16 fun fork interrupts body = |
17 fun fork interrupts body = |
17 Thread.fork (fn () => exception_trace (fn () => body ()), |
18 Thread.fork (fn () => exception_trace (fn () => body ()), |
18 if interrupts then Multithreading.regular_interrupts else Multithreading.no_interrupts); |
19 if interrupts then Multithreading.regular_interrupts else Multithreading.no_interrupts); |
19 |
20 |
|
21 fun interrupt thread = Thread.interrupt thread handle Thread _ => (); |
|
22 |
20 end; |
23 end; |