--- 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);