From 20593b0d38d5357c89b93fac8c06e2083fa56df9 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Mon, 3 Jan 2011 14:14:00 -0800 Subject: [PATCH] msgr: Unlock dispatch_queue.lock when short-circuiting queue_received. Previously we left the mutex locked, which is obviously bad bad bad! I believe this was the cause of #673. Signed-off-by: Greg Farnum --- src/msg/SimpleMessenger.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index fd18a546161..0d9281bcbe4 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -551,8 +551,10 @@ void SimpleMessenger::Pipe::queue_received(Message *m, int priority) messenger->dispatch_queue.lock.Lock(); pipe_lock.Lock(); - if (halt_delivery) + if (halt_delivery) { + messenger->dispatch_queue.lock.Unlock(); goto halt; + } dout(20) << "queue_received queuing pipe" << dendl; if (!queue_items.count(priority))