FairMonitor::Wait()
{
  create a Win32 event
  [place the event handle in the wait set]
  release the lock
  block on the event
  acquire the lock
  destroy the event
}
FairMonitor::Notify()
{
  [retrieve and remove the oldest event handle from the wait set]
  set the event to the signaled state
}
FairMonitor::NotifyAll()
{
  [retrieve and remove all event handles from the wait set]
  set all events to the signaled state
}

Example 1: The Wait() and Notify() methods.

Back to Article