equal
deleted
inserted
replaced
612 |
612 |
613 fun value x = value_result (Exn.Res x); |
613 fun value x = value_result (Exn.Res x); |
614 |
614 |
615 fun cond_forks args es = |
615 fun cond_forks args es = |
616 if enabled () then forks args es |
616 if enabled () then forks args es |
617 else map (fn e => value_result (Exn.interruptible_capture e ())) es; |
617 else map (fn e => value_result (Exn.result e ())) es; |
618 |
618 |
619 fun map_future f x = |
619 fun map_future f x = |
620 if is_finished x then value_result (Exn.interruptible_capture (f o join) x) |
620 if is_finished x then value_result (Exn.result (f o join) x) |
621 else |
621 else |
622 let |
622 let |
623 val task = task_of x; |
623 val task = task_of x; |
624 val group = Task_Queue.group_of_task task; |
624 val group = Task_Queue.group_of_task task; |
625 val (result, job) = |
625 val (result, job) = |