We should check the condition that _currentCommittedSnapshot is set here after waking up. According to the standard it is possible for a spurious wakeup to occur where the thread is awoken even though no thread signaled the condition variable. This behavior was seen in a build failure.