src/Pure/Concurrent/future.ML
changeset 43538 de5c79682b56
parent 42128 eb84d28961a9
child 43665 573d1272f36d
equal deleted inserted replaced
43537:80803078552e 43538:de5c79682b56
   452     | (SOME work, deps') => SOME (work, deps'));
   452     | (SOME work, deps') => SOME (work, deps'));
   453 
   453 
   454 fun execute_work NONE = ()
   454 fun execute_work NONE = ()
   455   | execute_work (SOME (work, deps')) = (worker_joining (fn () => execute work); join_work deps')
   455   | execute_work (SOME (work, deps')) = (worker_joining (fn () => execute work); join_work deps')
   456 and join_work deps =
   456 and join_work deps =
   457   execute_work (SYNCHRONIZED "join" (fn () => join_next deps));
   457   Multithreading.with_attributes Multithreading.no_interrupts
       
   458     (fn _ => execute_work (SYNCHRONIZED "join" (fn () => join_next deps)));
   458 
   459 
   459 in
   460 in
   460 
   461 
   461 fun join_results xs =
   462 fun join_results xs =
   462   let
   463   let