diff options
author | Enrico Tassi <Enrico.Tassi@inria.fr> | 2014-02-21 18:17:03 +0100 |
---|---|---|
committer | Enrico Tassi <Enrico.Tassi@inria.fr> | 2014-02-26 14:53:08 +0100 |
commit | 83ee68ba8beda04343514d9e5905ea062cbeada0 (patch) | |
tree | 3a9d1fab786e5d3483b433f1f8c03649439f1b70 /lib/future.ml | |
parent | 7726a81d850020b6402f445912f3a3d9310da69d (diff) |
Future: make ~greedy:true the default + new sink commodity API
Diffstat (limited to 'lib/future.ml')
-rw-r--r-- | lib/future.ml | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/future.ml b/lib/future.ml index 8f2ae1df5..564535268 100644 --- a/lib/future.ml +++ b/lib/future.ml @@ -170,7 +170,7 @@ let transactify f x = let purify_future f x = if is_over x then f x else purify f x let compute x = purify_future (compute ~pure:false) x let force x = purify_future (force ~pure:false) x -let chain ?(greedy=false) ~pure x f = +let chain ?(greedy=true) ~pure x f = let y = chain ~pure x f in if is_over x && greedy then ignore(force y); y @@ -180,6 +180,8 @@ let join kx = kx := Finished v; v +let sink kx = if is_val kx then ignore(join kx) + let split2 ?greedy x = chain ?greedy ~pure:true x (fun x -> fst x), chain ?greedy ~pure:true x (fun x -> snd x) |