From 23fd2cc44864ac793b09d8e60b30cfffe22f0116 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 30 Sep 2024 11:10:16 +0200 Subject: [PATCH] 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 --- src/msg/DispatchQueue.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msg/DispatchQueue.cc b/src/msg/DispatchQueue.cc index b8ed6f7efe8..4694bdff587 100644 --- a/src/msg/DispatchQueue.cc +++ b/src/msg/DispatchQueue.cc @@ -93,7 +93,7 @@ void DispatchQueue::enqueue(const ref_t& m, int priority, uint64_t id) } else { mqueue.enqueue(id, priority, m->get_cost(), QueueItem(m)); } - cond.notify_all(); + cond.notify_one(); } void DispatchQueue::local_delivery(const ref_t& m, int priority) -- 2.39.5