glibc/nptl/sysdeps/unix/sysv/linux
Ulrich Drepper 5bd8a24966 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
* pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
	dealing with robust mutexes.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_trylock.c: Likewise.
	* pthread_mutex_unlock.c: Likewise.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.

2007-08-06  Jakub Jelinek  <jakub@redhat.com>

	* pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
	(PTHREAD_MUTEX_TYPE): Mask __kind with 127.
	(PTHREAD_MUTEX_PSHARED): Define.
	* pthread_mutex_init.c (__pthread_mutex_init): Set
	PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
	mutexes.
	* pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
	instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
	as second argument to lll_lock.
	(LLL_MUTEX_TRYLOCK): Take mutex as argument
	instead of its __data.__lock field.
	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
	to lll_robust_lock.
	(__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
	LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
	instead of mutex->__data.__kind directly, pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
	directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
	(pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
	to lll_timedlock, lll_robust_timedlock, lll_unlock and
	lll_futex_timed_wait.  Use PTHREAD_MUTEX_TYPE (mutex) instead
	of mutex->__data.__kind directly.
	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
	lll_robust_timedlock, lll_unlock and lll_futex_timed_wait.  Use
	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
	and lll_futex_wake.
	* pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
	PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
	Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
	directly.
	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
	Take mutex as argument instead of its __data.__lock field, pass
	PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
	(LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
	__data.__lock field.
	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
	to lll_robust_cond_lock.
	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
	lll_futex_wake.  Don't use lll_futex_requeue if dependent mutex
	has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
	* pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
	lll_futex_wait.
	* pthread_cond_signal.c (__pthread_cond_signal): Add pshared
	variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
	lll_futex_wake.
	* pthread_cond_timedwait.c (__pthread_cond_wait): Add
	pshared variable, pass it to lll_lock, lll_unlock,
	lll_futex_timedwait and lll_futex_wake.
	* pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
	pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
	and lll_futex_wake.
	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Add private argument, use __lll_private_flag
	macro.
	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
	lll_futex_wake_unlock): Likewise.
	(lll_futex_wake): Fix a typo.
	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
	(__pthread_cond_timedwait): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
	(__condvar_cleanup, __pthread_cond_wait): Likewise.
2007-08-11 18:50:51 +00:00
..
alpha * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
bits . 2007-07-31 13:33:18 +00:00
i386 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
ia64 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
powerpc * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
s390 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
sh * intl/dcigettext.c (_nl_find_msg): Free encoding if __gconv_open 2007-08-03 15:50:30 +00:00
sparc * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
x86_64 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
aio_misc.h * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups. 2006-03-02 17:35:44 +00:00
allocrtsig.c Update. 2004-09-20 00:16:11 +00:00
createthread.c Update. 2003-03-10 06:32:42 +00:00
fork.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
fork.h * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
getpid.c Update. 2004-03-24 22:05:34 +00:00
Implies
internaltypes.h * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking 2007-05-30 04:08:13 +00:00
jmp-unwind.c * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the 2007-01-17 08:37:26 +00:00
kernel-posix-timers.h Don't declare __timer_helper_thread. Declare __start_helper_thread, __helper_once, and __helper_tid. (struct timer): Remove th and bar field. 2003-03-28 06:22:13 +00:00
libc_multiple_threads.c Update. 2003-03-13 01:51:12 +00:00
libc_pthread_init.c * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Pass correct value 2007-05-21 22:38:06 +00:00
libc-lowlevellock.c 2003-03-17 Roland McGrath <roland@redhat.com> 2003-03-17 11:22:52 +00:00
lowlevelbarrier.sym * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier): 2007-05-26 16:19:15 +00:00
lowlevelcond.sym * sysdeps/unix/sysv/linux/internaltypes.h: Introduce 2007-05-29 16:15:48 +00:00
lowlevellock.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
lowlevelrobustlock.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
lowlevelrobustlock.sym * sysdeps/unix/sysv/linux/not-cancel.h (__openat_not_cancel, 2006-02-15 17:20:33 +00:00
lowlevelrwlock.sym * init.c: Make it compile with older kernel headers. 2007-05-27 18:06:18 +00:00
Makefile * semaphoreP.h: Declare __old_sem_init and __old_sem_wait. 2007-05-26 01:31:40 +00:00
mq_notify.c * sysdeps/alpha/fpu/s_cacosf.c: Don't use sysdeps/generic/. 2005-12-15 21:13:14 +00:00
pt-fork.c
pt-raise.c Update. 2003-12-20 23:39:42 +00:00
pthread_attr_getaffinity.c Update. 2004-03-29 22:04:09 +00:00
pthread_attr_setaffinity.c * pthread_key_create.c (__pthread_key_create): Do away with 2006-05-11 17:52:42 +00:00
pthread_getaffinity.c Update. 2004-03-29 22:04:09 +00:00
pthread_getcpuclockid.c Use <> instead of "" includes. 2005-04-27 16:51:52 +00:00
pthread_kill.c * nis/nss_compat/compat-grp.c (internal_getgrgid_r): Don't 2006-12-22 20:26:56 +00:00
pthread_mutex_cond_lock.c * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
pthread_setaffinity.c * sysdeps/unix/sysv/linux/sched_setaffinity.c 2007-05-10 23:38:55 +00:00
pthread_yield.c
pthread-pi-defines.sym * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define. 2007-08-11 18:50:51 +00:00
raise.c Update. 2004-03-10 05:25:48 +00:00
register-atfork.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
rtld-lowlevel.h * iconvdata/gbk.c (BODY): Make buf and cp char instead of unsigned 2007-07-28 20:16:07 +00:00
sem_post.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
sem_timedwait.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
sem_trywait.c Replace __lll_add calls with atomic_exchange_and_add calls respectively. 2003-03-20 10:28:06 +00:00
sem_wait.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
sigtimedwait.c Update. 2003-06-17 22:11:22 +00:00
sigwait.c Update. 2003-06-17 22:11:22 +00:00
sigwaitinfo.c Update. 2003-06-17 22:11:22 +00:00
sleep.c * Makefile (subdir-target-args): New variable. 2006-02-28 07:11:04 +00:00
smp.h [BZ #2980] 2006-08-02 16:45:53 +00:00
structsem.sym * semaphoreP.h: Declare __old_sem_init and __old_sem_wait. 2007-05-26 01:31:40 +00:00
timer_create.c [BZ #4306] 2007-04-28 04:03:38 +00:00
timer_delete.c Update. 2003-06-18 19:34:34 +00:00
timer_getoverr.c Update. 2003-06-18 19:34:34 +00:00
timer_gettime.c Update. 2003-06-18 19:34:34 +00:00
timer_routines.c * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread): 2006-04-27 18:17:50 +00:00
timer_settime.c Update. 2003-06-18 19:34:34 +00:00
unregister-atfork.c * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post): 2007-08-01 04:47:26 +00:00
unwindbuf.sym Update. 2003-07-01 03:33:06 +00:00
Versions Update. 2002-12-28 22:19:04 +00:00