Handling spurious wakeups in TimedWaitPop. IsEmpty is now a const method