
Hi, I've posted this to the users list as well, but it might have got lost as I replied on the original thread. Well, I still have problems with the conditions, even with the latest SVN. The problem seems to be that inside a block like: Lock lock (mutex); while (something.empty ()) cond.wait (mutex); I'm still getting into a state where something.empty () == false and yet I'm waiting on the condition. The only other access happens via: Lock lock (mutex); something.push (...); cond.notify_one (); So I don't get it how something can go wrong, unless the transition from mutex.unlock () to cond.wait () is not fully atomic and the following happens: Thread 1: while (something.empty ()) cond.wait (mutex); // starts, releaes lock but is not waiting yet Now comes Thread 2: Lock lock (); something.push cond.notify_one (); // Nobody waiting lock.release (); Thread 1 again: cond.wait (mutex); // starts waiting I had a similar problem with my own condition implementation on Windows, with exactly the same syndromes (I've been following the "Strategies for Implementing POSIX Condition Variables on Win32" http://www.cs.wustl.edu/~schmidt/win32-cv-1.html - only got it working properly with SignalObjectAndWait). Currently, it always leaves exactly *one* thread waiting, while previously, it left several threads waiting, so it has improved but there is still a problem. Any ideas? Anything I can do to track this down further? Cheers, Anteru