Skip to content

Commit 23fd2cc

Browse files
committed
msg/DispatchQueue: wake up only one dispatch thread
When adding one message, only one thread needs to be woken up. Waking up all is a more expensive operation and leads to unnecessary lock contention and context switches. Signed-off-by: Max Kellermann <[email protected]>
1 parent 7e5ebb7 commit 23fd2cc

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/msg/DispatchQueue.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ void DispatchQueue::enqueue(const ref_t<Message>& m, int priority, uint64_t id)
9393
} else {
9494
mqueue.enqueue(id, priority, m->get_cost(), QueueItem(m));
9595
}
96-
cond.notify_all();
96+
cond.notify_one();
9797
}
9898

9999
void DispatchQueue::local_delivery(const ref_t<Message>& m, int priority)

0 commit comments

Comments
 (0)