From 4d3f12f167729ecb5de5b9bf8e18f9eca52beced Mon Sep 17 00:00:00 2001 From: Alex AUVOLAT Date: Sun, 25 May 2014 23:26:38 +0200 Subject: Add README, clean up a little. --- src/kahn_seq.ml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/kahn_seq.ml') diff --git a/src/kahn_seq.ml b/src/kahn_seq.ml index 8aff905..c699bbd 100644 --- a/src/kahn_seq.ml +++ b/src/kahn_seq.ml @@ -53,8 +53,14 @@ module Seq: S = struct let doco l = fun cont -> - List.iter (fun proc -> Queue.push (fun () -> proc (fun () -> ())) tasks) l; - cont () + let remain = ref (List.length l) in + List.iter (fun proc -> Queue.push (fun () -> proc (fun () -> remain := !remain - 1)) tasks) l; + let rec wait_x () = + if !remain = 0 then + cont () + else + Queue.push wait_x tasks + in wait_x () let return v = fun cont -> cont v -- cgit v1.2.3