equal
deleted
inserted
replaced
47 val join_results: 'a future list -> 'a Exn.result list |
47 val join_results: 'a future list -> 'a Exn.result list |
48 val join_result: 'a future -> 'a Exn.result |
48 val join_result: 'a future -> 'a Exn.result |
49 val join: 'a future -> 'a |
49 val join: 'a future -> 'a |
50 val value: 'a -> 'a future |
50 val value: 'a -> 'a future |
51 val map: ('a -> 'b) -> 'a future -> 'b future |
51 val map: ('a -> 'b) -> 'a future -> 'b future |
|
52 val cond_forks: |
|
53 {name: string, group: Task_Queue.group option, deps: Task_Queue.task list, pri: int} -> |
|
54 (unit -> 'a) list -> 'a future list |
52 val promise_group: Task_Queue.group -> 'a future |
55 val promise_group: Task_Queue.group -> 'a future |
53 val promise: unit -> 'a future |
56 val promise: unit -> 'a future |
54 val fulfill_result: 'a future -> 'a Exn.result -> unit |
57 val fulfill_result: 'a future -> 'a Exn.result -> unit |
55 val fulfill: 'a future -> 'a -> unit |
58 val fulfill: 'a future -> 'a -> unit |
56 val interruptible_task: ('a -> 'b) -> 'a -> 'b |
59 val interruptible_task: ('a -> 'b) -> 'a -> 'b |
498 (forks {name = "Future.map", group = SOME group, |
501 (forks {name = "Future.map", group = SOME group, |
499 deps = [task], pri = Task_Queue.pri_of_task task}) |
502 deps = [task], pri = Task_Queue.pri_of_task task}) |
500 (fn () => f (join x)) |
503 (fn () => f (join x)) |
501 end; |
504 end; |
502 |
505 |
|
506 fun cond_forks args es = |
|
507 if Multithreading.enabled () then forks args es |
|
508 else map (fn e => value (e ())) es; |
|
509 |
503 |
510 |
504 (* promised futures -- fulfilled by external means *) |
511 (* promised futures -- fulfilled by external means *) |
505 |
512 |
506 fun promise_group group : 'a future = |
513 fun promise_group group : 'a future = |
507 let |
514 let |