From 2487d7069c3cde1dabbf82c9eb527dee883f5e44 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 18 Sep 2013 17:38:26 +0200 Subject: [PATCH] Fix workqueue dispatch. --- lib/base/workqueue.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/base/workqueue.cpp b/lib/base/workqueue.cpp index bc7a3b0c2..01af5938e 100644 --- a/lib/base/workqueue.cpp +++ b/lib/base/workqueue.cpp @@ -38,8 +38,10 @@ void WorkQueue::Enqueue(const WorkCallback& item) m_Items.push_back(item); m_CV.notify_all(); - if (!m_Executing) + if (!m_Executing) { + m_Executing = true; Utility::QueueAsyncCallback(boost::bind(&WorkQueue::ExecuteItem, this)); + } } void WorkQueue::Join(void) @@ -59,7 +61,6 @@ void WorkQueue::Clear(void) void WorkQueue::ExecuteItem(void) { boost::mutex::scoped_lock lock(m_Mutex); - m_Executing = true; while (!m_Items.empty()) { try {