mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-16 10:00:12 +00:00
7c37008632
2004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock. * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S (__pthread_cond_signal): Increment __futex at the same time as __wakeup_seq or __total_seq. Pass address of __futex instead of address of low 32-bits of __wakeup_seq to futex syscall. * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait): Likewise. Pass __futex value from before releasing internal lock to FUTEX_WAIT. * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S (FUTEX_CMP_REQUEUE): Define. (__pthread_cond_broadcast): Set __futex to 2 * __total_seq. Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE. Pass __futex value from before the unlock and __futex address instead of address of low 32-bits of __wakeup_seq to futex syscall. Fallback to FUTEX_WAKE all on any errors. |
||
---|---|---|
.. | ||
bits | ||
sh4 | ||
createthread.c | ||
fork.c | ||
libc-lowlevellock.S | ||
lowlevel-atomic.h | ||
lowlevellock.h | ||
lowlevellock.S | ||
not-cancel.h | ||
pt-initfini.c | ||
pt-vfork.S | ||
pthread_barrier_wait.S | ||
pthread_cond_broadcast.S | ||
pthread_cond_signal.S | ||
pthread_cond_timedwait.S | ||
pthread_cond_wait.S | ||
pthread_once.S | ||
pthread_rwlock_rdlock.S | ||
pthread_rwlock_timedrdlock.S | ||
pthread_rwlock_timedwrlock.S | ||
pthread_rwlock_unlock.S | ||
pthread_rwlock_wrlock.S | ||
sem_post.S | ||
sem_timedwait.S | ||
sem_trywait.S | ||
sem_wait.S | ||
smp.h | ||
sysdep-cancel.h | ||
vfork.S |