On Oct 24, 2011, at 7:12 AM, Steven Schveighoffer wrote:
> 
> When waiting on a condition, you must have its associative mutex locked, or 
> Bad Things could happen.  You should also have the mutex locked when 
> signaling the condition, but I don't think that's an absolute requirement.
> 
> The key here is, waiting on a condition atomically unlocks the mutex.  If 
> waiting on a condition was allowed without locking the mutex, potentially 
> thread2 could miss thread1's signal, and you encounter a deadlock!

Bartosz just posted a tutorial on Mutexes and Conditions.  How timely:

http://www.corensic.com/Learn/Resources/ConcurrencyTutorialPartSeven.aspx

Reply via email to