aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Maxime Dénès <mail@maximedenes.fr>2017-03-24 08:53:34 +0100
committerGravatar Maxime Dénès <mail@maximedenes.fr>2017-03-24 08:53:34 +0100
commit9c80dd80feb1cc2ae6d0dc6e08985d4f51d4f329 (patch)
tree47cba4c5052a065d97e8e780616f0667f33f3be2
parent0561c16e0bb1a4b36b7cf287d1be12e661a29813 (diff)
parentc318a983e078b6c729425f21526c6896ba55df09 (diff)
Merge PR#476: [future] Be eager when "chaining" already resolved future values.
-rw-r--r--lib/future.ml4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/future.ml b/lib/future.ml
index ea0382a63..ca73d5e39 100644
--- a/lib/future.ml
+++ b/lib/future.ml
@@ -151,8 +151,8 @@ let chain ~pure ck f =
create ~uuid ~name fix_exn (match !c with
| Closure _ | Delegated _ -> Closure (fun () -> f (force ~pure ck))
| Exn _ as x -> x
- | Val (v, None) when pure -> Closure (fun () -> f v)
- | Val (v, Some _) when pure -> Closure (fun () -> f v)
+ | Val (v, None) when pure -> Val (f v, None)
+ | Val (v, Some _) when pure -> Val (f v, None)
| Val (v, Some state) -> Closure (fun () -> !unfreeze state; f v)
| Val (v, None) ->
match !ck with