From 985c6bc7d912ac0e49ae4c814660ce0f9ef6fc4d Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 27 Feb 2015 18:29:21 +0100 Subject: [PATCH] Fix a deadlock in WorkQueue::WorkerThreadProc refs #8554 --- lib/base/workqueue.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/base/workqueue.cpp b/lib/base/workqueue.cpp index 427bbcae1..e8209fe98 100644 --- a/lib/base/workqueue.cpp +++ b/lib/base/workqueue.cpp @@ -220,6 +220,10 @@ void WorkQueue::WorkerThreadProc(void) m_ExceptionCallback(boost::current_exception()); } + /* clear the task so whatever other resources it holds are released + _before_ we re-acquire the mutex */ + task = Task(); + lock.lock(); m_Processing--;