libstdc++: Fix __thread_yield for non-gthreads targets
authorJonathan Wakely <jwakely@redhat.com>
Mon, 15 Feb 2021 15:35:55 +0000 (15:35 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Mon, 15 Feb 2021 15:52:25 +0000 (15:52 +0000)
commitcc9a0a3d79d6abb08753a819c9ea21a25015e962
treeb83ee194f7517919ba93e46a0692bca712237030
parentd27153f038c2f39ed1b7e6ba9dab59f88b8ca245
libstdc++: Fix __thread_yield for non-gthreads targets

The __gthread_yield() function is only defined for gthreads targets, so
check _GLIBCXX_HAS_GTHREADS before using it.

Also reorder __thread_relax and __thread_yield so that the former can
use the latter instead of repeating the same preprocessor checks.

libstdc++-v3/ChangeLog:

* include/bits/atomic_wait.h (__thread_yield()): Check
_GLIBCXX_HAS_GTHREADS before using __gthread_yield.
(__thread_relax()): Use __thread_yield() instead of repeating
the preprocessor checks for __gthread_yield.
libstdc++-v3/include/bits/atomic_wait.h