@Gray Having looked at the answer, a spurious wake up is a reason to guard the wait with a loop, it may not be the best answer but it would not say it is incorrect, the loop protects against both conditions (the race hazard, and the spurious wakeup), a proper answer should mention both.