equal
deleted
inserted
replaced
321 (case Graph.get_node task_graph name of Task body => SOME (name, body) | _ => NONE)); |
321 (case Graph.get_node task_graph name of Task body => SOME (name, body) | _ => NONE)); |
322 |
322 |
323 fun future (name, body) tab = |
323 fun future (name, body) tab = |
324 let |
324 let |
325 val deps = map_filter (Symtab.lookup tab) (Graph.imm_preds task_graph name); |
325 val deps = map_filter (Symtab.lookup tab) (Graph.imm_preds task_graph name); |
326 val x = Future.future NONE deps true body; |
326 val x = Future.fork_deps deps body; |
327 in (x, Symtab.update (name, Future.task_of x) tab) end; |
327 in (x, Symtab.update (name, x) tab) end; |
328 val _ = ignore (Exn.release_all (Future.join_results (#1 (fold_map future tasks Symtab.empty)))); |
328 val _ = ignore (Exn.release_all (Future.join_results (#1 (fold_map future tasks Symtab.empty)))); |
329 in () end; |
329 in () end; |
330 |
330 |
331 local |
331 local |
332 |
332 |