aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2021-09-28 20:41:46 +0100
committerJonathan Wakely <jwakely@redhat.com>2021-09-28 21:27:04 +0100
commit2fcfc7d66862c67677f0e1c46391292d5a21a567 (patch)
treef3c0cf9c37668de4fe62de57c60aeeecd61610c5 /libstdc++-v3
parent26c09ae12d212edcc1cdaf705aab3b3a52597362 (diff)
downloadgcc-2fcfc7d66862c67677f0e1c46391292d5a21a567.zip
gcc-2fcfc7d66862c67677f0e1c46391292d5a21a567.tar.gz
gcc-2fcfc7d66862c67677f0e1c46391292d5a21a567.tar.bz2
libstdc++: Fix return values for atomic wait on futex
This fixes a logic error in the futex-based timed wait. Signed-off-by: Jonathan Wakely <jwakely@redhat.com> libstdc++-v3/ChangeLog: * include/bits/atomic_timed_wait.h (__platform_wait_until_impl): Return false for ETIMEDOUT and true otherwise.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/include/bits/atomic_timed_wait.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/libstdc++-v3/include/bits/atomic_timed_wait.h b/libstdc++-v3/include/bits/atomic_timed_wait.h
index 3db08f8..d423a7a 100644
--- a/libstdc++-v3/include/bits/atomic_timed_wait.h
+++ b/libstdc++-v3/include/bits/atomic_timed_wait.h
@@ -101,12 +101,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
if (__e)
{
- if ((errno != ETIMEDOUT) && (errno != EINTR)
- && (errno != EAGAIN))
+ if (errno == ETIMEDOUT)
+ return false;
+ if (errno != EINTR && errno != EAGAIN)
__throw_system_error(errno);
- return true;
}
- return false;
+ return true;
}
// returns true if wait ended before timeout