aboutsummaryrefslogtreecommitdiff
path: root/stm/asyncTaskQueue.ml
diff options
context:
space:
mode:
authorEnrico Tassi2014-10-08 17:28:18 +0200
committerEnrico Tassi2014-10-13 18:13:20 +0200
commit7cfcaa57a68ea9abde9e2558ceef86589aa26d6d (patch)
tree4a6b0795b7a4408b0651d34146329495b423ff29 /stm/asyncTaskQueue.ml
parente3a0a4d58b74d2113485ceabe4235567fda962c8 (diff)
STM: primitives to snapshot a .vi while in interactive mode
Diffstat (limited to 'stm/asyncTaskQueue.ml')
-rw-r--r--stm/asyncTaskQueue.ml12
1 files changed, 9 insertions, 3 deletions
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