https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100334
--- Comment #5 from m.cencora at gmail dot com --- Actually standard seems to require it - at least to my understanding of wait() description in in chapter 31.8.1: it explicitly states that waiting is performed in a loop, and loop is exited only if value has changed from old. So when we force notify_all for pooled waiters, then it may happen that a thread for which value didn't change from 'old' will be woken, so we must recheck the value.