private bool DecrWaiters() { NumWaiting--; bool removed = Waiting.Remove(ThreadClass.Current()); Debug.Assert(removed); return NumWaiting >= 0; }