# HG changeset patch # User wenzelm # Date 1311452541 -7200 # Node ID 318ca53e3fbb6b5e483eb321bd580d0588ad6073 # Parent 804783d6ee26a3987eb3e713500db54da5bd56fe make double-sure that interrupts are flushed before executing new work (cf. 22f8c2483bd2); diff -r 804783d6ee26 -r 318ca53e3fbb src/Pure/Concurrent/future.ML --- a/src/Pure/Concurrent/future.ML Sat Jul 23 21:29:56 2011 +0200 +++ b/src/Pure/Concurrent/future.ML Sat Jul 23 22:22:21 2011 +0200 @@ -253,7 +253,7 @@ fun worker_loop name = (case SYNCHRONIZED name (fn () => worker_next ()) of NONE => () - | SOME work => (execute work; worker_loop name)); + | SOME work => (Exn.capture Multithreading.interrupted (); execute work; worker_loop name)); fun worker_start name = (*requires SYNCHRONIZED*) Unsynchronized.change workers (cons (Simple_Thread.fork false (fn () => worker_loop name),