: It is the user's responsibility to ensure that waiting threads
do not erroneously assume that the thread has finished if they experience
spurious wakeups
. This typically requires that the condition being waited
for is satisfied while holding the lock on
lk, and that this lock
is not released and reacquired prior to calling
notify_all_at_thread_exit. —
end note