From 7cfcaa57a68ea9abde9e2558ceef86589aa26d6d Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Wed, 8 Oct 2014 17:28:18 +0200 Subject: STM: primitives to snapshot a .vi while in interactive mode --- stm/asyncTaskQueue.ml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'stm/asyncTaskQueue.ml') diff --git a/stm/asyncTaskQueue.ml b/stm/asyncTaskQueue.ml index 74e83a39fd..22e7c02431 100644 --- a/stm/asyncTaskQueue.ml +++ b/stm/asyncTaskQueue.ml @@ -304,13 +304,19 @@ module Make(T : Task) = struct flush_all (); exit 1 done - let dump () = - assert(WorkersPool.is_empty ()); (* ATM, we allow that only if no slaves *) - List.map fst (TQueue.dump queue) + let clear () = + assert(WorkersPool.is_empty ()); (* We allow that only if no slaves *) + TQueue.clear queue + + let snapshot () = + List.map fst + (TQueue.wait_until_n_are_waiting_then_snapshot + (WorkersPool.n_workers ()) queue) let init n = WorkersPool.init n manage_slave (fun n -> Printf.sprintf "%s:%d" T.name n) + let destroy () = WorkersPool.destroy (); TQueue.destroy queue -- cgit v1.2.3