diff Core/MultiThreading/SharedMessageQueue.cpp @ 723:0da078f3affc

multithreading tests
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 18 Feb 2014 16:18:42 +0100
parents 2d0a347e8cfc
children a811bdf8b8eb
line wrap: on
line diff
--- a/Core/MultiThreading/SharedMessageQueue.cpp	Fri Feb 14 16:12:44 2014 +0100
+++ b/Core/MultiThreading/SharedMessageQueue.cpp	Tue Feb 18 16:18:42 2014 +0100
@@ -89,7 +89,11 @@
 
     std::auto_ptr<IDynamicObject> message(queue_.front());
     queue_.pop_front();
-    emptied_.notify_all();
+
+    if (queue_.empty())
+    {
+      emptied_.notify_all();
+    }
 
     return message.release();
   }
@@ -101,7 +105,7 @@
     boost::mutex::scoped_lock lock(mutex_);
     
     // Wait for the queue to become empty
-    if (!queue_.empty())
+    while (!queue_.empty())
     {
       if (millisecondsTimeout == 0)
       {