programs should use the equivalent standard function
pthread_mutexattr_setrobust instead.
+* The function pthread_yield has been deprecated; programs should use
+ the equivalent standard function sched_yield instead.
+
Changes to build and runtime requirements:
* On Linux, the shm_open, sem_open, and related functions now expect the
pthread_spin_lock \
pthread_spin_trylock \
pthread_spin_unlock \
+ pthread_yield \
tpp \
unwind \
pthread_testcancel \
pthread_timedjoin \
pthread_tryjoin \
- pthread_yield \
sem_clockwait \
sem_close \
sem_destroy \
pthread_spin_unlock;
pthread_rwlock_timedrdlock;
pthread_rwlock_timedwrlock;
+ pthread_yield;
}
GLIBC_2.2.3 {
pthread_getattr_np;
pthread_barrierattr_setpshared;
pthread_getcpuclockid;
pthread_yield;
+ pthread_rwlock_timedrdlock;
+ pthread_rwlock_timedwrlock;
sem_timedwait;
}
#include <pthread.h>
#include <sched.h>
+#include <shlib-compat.h>
-
-/* With the 1-on-1 model we implement this function is equivalent to
- the 'sched_yield' function. */
-int
-pthread_yield (void)
+#if OTHER_SHLIB_COMPAT (libpthread, GLIBC_2_2, GLIBC_2_34)
+int attribute_compat_text_section
+__pthread_yield (void)
{
- return sched_yield ();
+ return __sched_yield ();
}
+compat_symbol (libpthread, __pthread_yield, pthread_yield, GLIBC_2_2);
+#endif /* OTHER_SHLIB_COMPAT */
#endif
#ifdef __USE_GNU
-/* Yield the processor to another thread or process.
- This function is similar to the POSIX `sched_yield' function but
- might be differently implemented in the case of a m-on-n thread
- implementation. */
extern int pthread_yield (void) __THROW;
+# ifdef __REDIRECT_NTH
+extern int __REDIRECT_NTH (pthread_yield, (void), sched_yield)
+ __attribute_deprecated_msg__ ("\
+pthread_yield is deprecated, use sched_yield instead");
+# else
+# define pthread_yield sched_yield
+# endif
/* Limit specified thread TH to run only on the processors represented
GLIBC_2.17 pthread_spin_lock F
GLIBC_2.17 pthread_spin_trylock F
GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_yield F
GLIBC_2.17 ptrace F
GLIBC_2.17 ptsname F
GLIBC_2.17 ptsname_r F
GLIBC_2.17 pthread_testcancel F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
-GLIBC_2.17 pthread_yield F
GLIBC_2.17 sem_close F
GLIBC_2.17 sem_destroy F
GLIBC_2.17 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.32 pthread_spin_lock F
GLIBC_2.32 pthread_spin_trylock F
GLIBC_2.32 pthread_spin_unlock F
+GLIBC_2.32 pthread_yield F
GLIBC_2.32 ptrace F
GLIBC_2.32 ptsname F
GLIBC_2.32 ptsname_r F
GLIBC_2.32 pthread_testcancel F
GLIBC_2.32 pthread_timedjoin_np F
GLIBC_2.32 pthread_tryjoin_np F
-GLIBC_2.32 pthread_yield F
GLIBC_2.32 sem_clockwait F
GLIBC_2.32 sem_close F
GLIBC_2.32 sem_destroy F
GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
GLIBC_2.4 ptsname_r F
GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 pthread_yield F
GLIBC_2.4 sem_close F
GLIBC_2.4 sem_destroy F
GLIBC_2.4 sem_getvalue F
GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
GLIBC_2.4 ptsname_r F
GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 pthread_yield F
GLIBC_2.4 sem_close F
GLIBC_2.4 sem_destroy F
GLIBC_2.4 sem_getvalue F
GLIBC_2.29 pthread_spin_lock F
GLIBC_2.29 pthread_spin_trylock F
GLIBC_2.29 pthread_spin_unlock F
+GLIBC_2.29 pthread_yield F
GLIBC_2.29 ptrace F
GLIBC_2.29 ptsname F
GLIBC_2.29 ptsname_r F
GLIBC_2.29 pthread_testcancel F
GLIBC_2.29 pthread_timedjoin_np F
GLIBC_2.29 pthread_tryjoin_np F
-GLIBC_2.29 pthread_yield F
GLIBC_2.29 sem_close F
GLIBC_2.29 sem_destroy F
GLIBC_2.29 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.4 pthread_spin_lock F
GLIBC_2.4 pthread_spin_trylock F
GLIBC_2.4 pthread_spin_unlock F
+GLIBC_2.4 pthread_yield F
GLIBC_2.4 ptrace F
GLIBC_2.4 ptsname F
GLIBC_2.4 ptsname_r F
GLIBC_2.4 pthread_testcancel F
GLIBC_2.4 pthread_timedjoin_np F
GLIBC_2.4 pthread_tryjoin_np F
-GLIBC_2.4 pthread_yield F
GLIBC_2.4 sem_close F
GLIBC_2.4 sem_destroy F
GLIBC_2.4 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.18 pthread_spin_lock F
GLIBC_2.18 pthread_spin_trylock F
GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_yield F
GLIBC_2.18 ptrace F
GLIBC_2.18 ptsname F
GLIBC_2.18 ptsname_r F
GLIBC_2.18 pthread_testcancel F
GLIBC_2.18 pthread_timedjoin_np F
GLIBC_2.18 pthread_tryjoin_np F
-GLIBC_2.18 pthread_yield F
GLIBC_2.18 sem_close F
GLIBC_2.18 sem_destroy F
GLIBC_2.18 sem_getvalue F
GLIBC_2.18 pthread_spin_lock F
GLIBC_2.18 pthread_spin_trylock F
GLIBC_2.18 pthread_spin_unlock F
+GLIBC_2.18 pthread_yield F
GLIBC_2.18 ptrace F
GLIBC_2.18 ptsname F
GLIBC_2.18 ptsname_r F
GLIBC_2.18 pthread_testcancel F
GLIBC_2.18 pthread_timedjoin_np F
GLIBC_2.18 pthread_tryjoin_np F
-GLIBC_2.18 pthread_yield F
GLIBC_2.18 sem_close F
GLIBC_2.18 sem_destroy F
GLIBC_2.18 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 putgrent F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 putgrent F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
GLIBC_2.2 pthread_setconcurrency F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 putgrent F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 putgrent F
GLIBC_2.21 pthread_spin_lock F
GLIBC_2.21 pthread_spin_trylock F
GLIBC_2.21 pthread_spin_unlock F
+GLIBC_2.21 pthread_yield F
GLIBC_2.21 ptrace F
GLIBC_2.21 ptsname F
GLIBC_2.21 ptsname_r F
GLIBC_2.21 pthread_testcancel F
GLIBC_2.21 pthread_timedjoin_np F
GLIBC_2.21 pthread_tryjoin_np F
-GLIBC_2.21 pthread_yield F
GLIBC_2.21 sem_close F
GLIBC_2.21 sem_destroy F
GLIBC_2.21 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.3 pthread_spin_lock F
GLIBC_2.3 pthread_spin_trylock F
GLIBC_2.3 pthread_spin_unlock F
+GLIBC_2.3 pthread_yield F
GLIBC_2.3 ptrace F
GLIBC_2.3 ptsname F
GLIBC_2.3 ptsname_r F
GLIBC_2.3 pthread_join F
GLIBC_2.3 pthread_setconcurrency F
GLIBC_2.3 pthread_testcancel F
-GLIBC_2.3 pthread_yield F
GLIBC_2.3 sem_close F
GLIBC_2.3 sem_destroy F
GLIBC_2.3 sem_getvalue F
GLIBC_2.17 pthread_spin_lock F
GLIBC_2.17 pthread_spin_trylock F
GLIBC_2.17 pthread_spin_unlock F
+GLIBC_2.17 pthread_yield F
GLIBC_2.17 ptrace F
GLIBC_2.17 ptsname F
GLIBC_2.17 ptsname_r F
GLIBC_2.17 pthread_testcancel F
GLIBC_2.17 pthread_timedjoin_np F
GLIBC_2.17 pthread_tryjoin_np F
-GLIBC_2.17 pthread_yield F
GLIBC_2.17 sem_close F
GLIBC_2.17 sem_destroy F
GLIBC_2.17 sem_getvalue F
GLIBC_2.33 pthread_spin_lock F
GLIBC_2.33 pthread_spin_trylock F
GLIBC_2.33 pthread_spin_unlock F
+GLIBC_2.33 pthread_yield F
GLIBC_2.33 ptrace F
GLIBC_2.33 ptsname F
GLIBC_2.33 ptsname_r F
GLIBC_2.33 pthread_testcancel F
GLIBC_2.33 pthread_timedjoin_np F
GLIBC_2.33 pthread_tryjoin_np F
-GLIBC_2.33 pthread_yield F
GLIBC_2.33 sem_clockwait F
GLIBC_2.33 sem_close F
GLIBC_2.33 sem_destroy F
GLIBC_2.27 pthread_spin_lock F
GLIBC_2.27 pthread_spin_trylock F
GLIBC_2.27 pthread_spin_unlock F
+GLIBC_2.27 pthread_yield F
GLIBC_2.27 ptrace F
GLIBC_2.27 ptsname F
GLIBC_2.27 ptsname_r F
GLIBC_2.27 pthread_testcancel F
GLIBC_2.27 pthread_timedjoin_np F
GLIBC_2.27 pthread_tryjoin_np F
-GLIBC_2.27 pthread_yield F
GLIBC_2.27 sem_close F
GLIBC_2.27 sem_destroy F
GLIBC_2.27 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 putwc F
GLIBC_2.2 putwc_unlocked F
GLIBC_2.2 putwchar F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_getcpuclockid F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2.3 __libpthread_version_placeholder F
GLIBC_2.2.6 __libpthread_version_placeholder F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
+GLIBC_2.2 pthread_yield F
GLIBC_2.2 ptrace F
GLIBC_2.2 ptsname F
GLIBC_2.2 ptsname_r F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_testcancel F
-GLIBC_2.2 pthread_yield F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2.5 pthread_spin_lock F
GLIBC_2.2.5 pthread_spin_trylock F
GLIBC_2.2.5 pthread_spin_unlock F
+GLIBC_2.2.5 pthread_yield F
GLIBC_2.2.5 ptrace F
GLIBC_2.2.5 ptsname F
GLIBC_2.2.5 ptsname_r F
GLIBC_2.2.5 pthread_join F
GLIBC_2.2.5 pthread_setconcurrency F
GLIBC_2.2.5 pthread_testcancel F
-GLIBC_2.2.5 pthread_yield F
GLIBC_2.2.5 sem_close F
GLIBC_2.2.5 sem_destroy F
GLIBC_2.2.5 sem_getvalue F
GLIBC_2.16 pthread_spin_lock F
GLIBC_2.16 pthread_spin_trylock F
GLIBC_2.16 pthread_spin_unlock F
+GLIBC_2.16 pthread_yield F
GLIBC_2.16 ptrace F
GLIBC_2.16 ptsname F
GLIBC_2.16 ptsname_r F
GLIBC_2.16 pthread_testcancel F
GLIBC_2.16 pthread_timedjoin_np F
GLIBC_2.16 pthread_tryjoin_np F
-GLIBC_2.16 pthread_yield F
GLIBC_2.16 sem_close F
GLIBC_2.16 sem_destroy F
GLIBC_2.16 sem_getvalue F