added interrupt_task (external id);
authorwenzelm
Wed, 10 Sep 2008 23:28:09 +0200
changeset 28197 7053c539ecd8
parent 28196 f019dd2db561
child 28198 90dd4068bf61
added interrupt_task (external id); tuned signature;
src/Pure/Concurrent/future.ML
--- a/src/Pure/Concurrent/future.ML	Wed Sep 10 23:19:36 2008 +0200
+++ b/src/Pure/Concurrent/future.ML	Wed Sep 10 23:28:09 2008 +0200
@@ -15,9 +15,10 @@
   val shutdown_request: unit -> unit
   val future: group option -> task list -> (unit -> 'a) -> 'a T
   val fork: (unit -> 'a) -> 'a T
-  val cancel: 'a T -> unit
   val join_results: 'a T list -> 'a Exn.result list
   val join: 'a T -> 'a
+  val cancel: 'a T -> unit
+  val interrupt_task: string -> unit
 end;
 
 structure Future: FUTURE =
@@ -251,6 +252,7 @@
 fun cancel x = (scheduler_check (); cancel_request (group_of x));
 
 (*interrupt: adhoc signal, permissive, may get ignored*)
-fun interrupt_task id = SYNCHRONIZED "interrupt" (fn () => TaskQueue.interrupt (! queue) id);
+fun interrupt_task id = SYNCHRONIZED "interrupt"
+  (fn () => TaskQueue.interrupt_external (! queue) id);
 
 end;