From ffe7fc6ff44ec94544123c47b3d01bdec05b3fe0 Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Tue, 10 Feb 2015 08:34:00 +0100 Subject: *Queue: API to wake up all threads --- stm/asyncTaskQueue.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'stm/asyncTaskQueue.ml') diff --git a/stm/asyncTaskQueue.ml b/stm/asyncTaskQueue.ml index 672527d9b5..e3fb0b607a 100644 --- a/stm/asyncTaskQueue.ml +++ b/stm/asyncTaskQueue.ml @@ -177,7 +177,7 @@ module Make(T : Task) = struct if not (Worker.is_alive proc) then () else if cancelled () || !(!expiration_date) then let () = stop_waiting := true in - let () = TQueue.signal_destruction queue in + let () = TQueue.broadcast queue in Worker.kill proc else let () = Unix.sleep 1 in @@ -253,6 +253,8 @@ module Make(T : Task) = struct Pool.destroy active; TQueue.destroy queue + let broadcast { queue } = TQueue.broadcast queue + let enqueue_task { queue; active } (t, _ as item) = prerr_endline ("Enqueue task "^T.name_of_task t); TQueue.push queue item -- cgit v1.2.3