tuned Mailbox.send;
authorwenzelm
Mon, 08 Sep 2008 20:35:38 +0200
changeset 28170 a18cf8a0e656
parent 28169 356fc8734741
child 28171 9b2f9cc9ff4b
tuned Mailbox.send;
src/Pure/Concurrent/future.ML
src/Pure/Concurrent/mailbox.ML
--- a/src/Pure/Concurrent/future.ML	Mon Sep 08 20:33:29 2008 +0200
+++ b/src/Pure/Concurrent/future.ML	Mon Sep 08 20:35:38 2008 +0200
@@ -97,7 +97,7 @@
 
 fun interrupt (Future {task, ...}) = interrupt_task_group task;
 
-fun shutdown () = Mailbox.send Shutdown requests;
+fun shutdown () = Mailbox.send requests Shutdown;
 
 
 (* execute *)
@@ -112,7 +112,7 @@
     val _ = set_task NONE;
     val _ = set_group NONE;
     val _ = SYNCHRONIZED (fn () => (change queue (TaskQueue.finished task); notify_all ()));
-    val _ = (case (ok, group) of (false, SOME g) => Mailbox.send (CancelGroup g) requests | _ => ());
+    val _ = (case (ok, group) of (false, SOME g) => Mailbox.send requests (CancelGroup g) | _ => ());
   in () end;
 
 
--- a/src/Pure/Concurrent/mailbox.ML	Mon Sep 08 20:33:29 2008 +0200
+++ b/src/Pure/Concurrent/mailbox.ML	Mon Sep 08 20:35:38 2008 +0200
@@ -9,7 +9,7 @@
 sig
   type 'a T
   val create: unit -> 'a T
-  val send: 'a -> 'a T -> unit
+  val send: 'a T -> 'a -> unit
   val receive_timeout: Time.time -> 'a T -> 'a option
   val receive: 'a T -> 'a
 end;
@@ -32,7 +32,7 @@
 
 (* send -- non-blocking *)
 
-fun send msg (Mailbox {lock, cond, messages}) = uninterruptible (fn _ => fn () =>
+fun send (Mailbox {lock, cond, messages}) msg = uninterruptible (fn _ => fn () =>
   let
     val _ = Mutex.lock lock;
     val _ = change messages (Queue.enqueue msg);