b_queue: signal only if queue was empty

This commit is contained in:
Corentin Leruth 2023-08-23 08:43:13 +02:00 committed by Simon Cruanes
parent 96fb44e6bb
commit efafd34a9e

View file

@ -29,8 +29,9 @@ let push (self : _ t) x : unit =
Mutex.unlock self.mutex; Mutex.unlock self.mutex;
raise Closed raise Closed
) else ( ) else (
let was_empty = Queue.is_empty self.q in
Queue.push x self.q; Queue.push x self.q;
Condition.signal self.cond; if was_empty then Condition.signal self.cond;
Mutex.unlock self.mutex Mutex.unlock self.mutex
) )