diff options
Diffstat (limited to 'stm/asyncTaskQueue.ml')
-rw-r--r-- | stm/asyncTaskQueue.ml | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/stm/asyncTaskQueue.ml b/stm/asyncTaskQueue.ml index 74e83a39f..22e7c0243 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 |