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 <gregf@hq.newdream.net>
This commit is contained in:
Greg Farnum 2011-01-03 14:14:00 -08:00
parent 4efa300601
commit 20593b0d38

View File

@ -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))