libstdc++-v3/ChangeLog:
PR libstdc++/97936
* include/bits/atomic_wait.h (__platform_wait): Check errno,
not just the value of EAGAIN.
(__waiters::__waiters()): Fix name of data member.
auto __e = syscall (SYS_futex, static_cast<const void*>(__addr),
static_cast<int>(__futex_wait_flags::__wait_private),
__val, nullptr);
- if (!__e || EAGAIN)
+ if (!__e || errno == EAGAIN)
break;
else if (errno != EINTR)
__throw_system_error(__e);
mutable __gthread_cond_t _M_cv;
__waiters() noexcept
{
- __GTHREAD_COND_INIT_FUNCTION(&_M_cond);
+ __GTHREAD_COND_INIT_FUNCTION(&_M_cv);
}
# endif
#endif