https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106772
--- Comment #13 from Mkkt Bkkt <valera.mironow at gmail dot com> ---
example of simple mutex pseudocode that don't need call notify every unlock:
Same possible for other cases, if it doesn't please share example for me
```
int kUnlocked = 0;
int kLocked = 1;
int kLockedWithWaiters = 2;
std::atomic<int> state{0};
lock:
// some spin
if (state.cas(kUnlocked, kLocked)) {
return;
}
do {
if (state == kLockedWithWaiters || state.cas(kLocked, kLockedWithWaiters))
{
state.wait(kLockedWithWaiters);
}
} while (!state.cas(kUnlocked, kLockedWithWaiters));
unlock:
if (state.exchange(kUnlocked) == kLockedWithWaiters) {
state.notify_one();
}
```