--- a/src/Pure/Concurrent/future.ML Sat Aug 01 00:09:45 2009 +0200
+++ b/src/Pure/Concurrent/future.ML Sat Aug 01 00:17:03 2009 +0200
@@ -285,10 +285,9 @@
in continue end
handle Exn.Interrupt =>
(Multithreading.tracing 1 (fn () => "Interrupt");
- List.app do_cancel (Task_Queue.cancel_all (! queue));
+ uninterruptible (fn _ => fn () => List.app do_cancel (Task_Queue.cancel_all (! queue))) ();
scheduler_next ());
-
fun scheduler_loop () =
Multithreading.with_attributes
(Multithreading.sync_interrupts Multithreading.public_interrupts)