src/Pure/Concurrent/simple_thread.ML
changeset 28550 422e9bd169ac
parent 28241 de20fccf6509
child 28577 bd2456e0d944
equal deleted inserted replaced
28549:78affc7d4d0f 28550:422e9bd169ac
     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;