- void Set(bool bBroadcast = false)
- {
- CLockObject lock(m_mutex);
- m_bPredicate = true;
- m_bBroadcast = bBroadcast;
- }
-
- bool ResetAndReturn(void)
- {
- CLockObject lock(m_mutex);
- bool bReturn(m_bPredicate);
- if (bReturn && (--m_iWaitingThreads == 0 || !m_bBroadcast))
- m_bPredicate = false;
- return bReturn;
- }
-
- CMutex m_mutex;