void LazyCreateEvent(ref EventWaitHandle waitEvent, bool makeAutoResetEvent)
{
Debug.Assert (MyLockHeld);
Debug.Assert (waitEvent == null);
ExitMyLock ();
EventWaitHandle newEvent;
if (makeAutoResetEvent)
newEvent = new AutoResetEvent (false);
else
newEvent = new ManualResetEvent (false);
EnterMyLock ();
// maybe someone snuck in.
if (waitEvent == null)
waitEvent = newEvent;
}