[PATCH] libstdc++: Fix semaphore to work with system_clock timeouts
Richard Biener
richard.guenther@gmail.com
Fri Apr 23 06:47:55 GMT 2021
On Thu, Apr 22, 2021 at 8:48 PM Jonathan Wakely via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> The __cond_wait_until_impl function takes a steady_clock timeout, but
> then sometimes tries to compare it to a time from the system_clock,
> which won't compile. Additionally, that function gets called with
> system_clock timeouts, which also won't compile. This makes the function
> accept timeouts for either clock, and compare to the time from the right
> clock.
>
> This fixes the compilation error that was causing two tests to fail on
> non-futex targets, so we can revert the r12-11 change to disable them.
>
> libstdc++-v3/ChangeLog:
>
> * include/bits/atomic_timed_wait.h (__cond_wait_until_impl):
> Handle system_clock as well as steady_clock.
> * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable.
> * testsuite/30_threads/semaphore/try_acquire_until.cc:
> Re-enable.
>
> I'm testing this now on x86_64-linux, powerpc64le-linux, sparc-linux,
> power-aix and sparc-solaris. It looks good so far, so I'll push to
> trunk when the tests finish.
>
> This should also go to the gcc-11 branch, or the timed waits for
> semaphores can't be used with system_clock times on non-futed targets.
Fine with me.
>
>
More information about the Libstdc++
mailing list