diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-11-21 10:00:11 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-11-21 10:00:11 +0000 |
commit | e42a990eccb6ce79650db5fb713b94732df82f4d (patch) | |
tree | 95d395c4c8c069d3d93fe99895c0fb5415ef9d48 /nptl/sysdeps/pthread/pthread_cond_wait.c | |
parent | bf68b2366d75a427ec74084e97e242d460196db0 (diff) | |
download | glibc-e42a990eccb6ce79650db5fb713b94732df82f4d.tar.gz glibc-e42a990eccb6ce79650db5fb713b94732df82f4d.tar.xz glibc-e42a990eccb6ce79650db5fb713b94732df82f4d.zip |
Update.
* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't store mutex address if the current value is ~0l. * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise. * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast): Don't use requeue for pshared condvars. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (__pthread_cond_wait): Don't store mutex address if the current value is ~0l. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S (__pthread_cond_broadcast): Don't use requeue for pshared condvars. * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex element with ~0l for pshared condvars, with NULL otherwise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S (__pthread_cond_wait): Don't store mutex address if the current value is ~0l. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S (__pthread_cond_timedwait): Likewise. * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
Diffstat (limited to 'nptl/sysdeps/pthread/pthread_cond_wait.c')
-rw-r--r-- | nptl/sysdeps/pthread/pthread_cond_wait.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/nptl/sysdeps/pthread/pthread_cond_wait.c b/nptl/sysdeps/pthread/pthread_cond_wait.c index 75edf3d158..79c6d9951c 100644 --- a/nptl/sysdeps/pthread/pthread_cond_wait.c +++ b/nptl/sysdeps/pthread/pthread_cond_wait.c @@ -93,8 +93,10 @@ __pthread_cond_wait (cond, mutex) ++cond->__data.__total_seq; /* Remember the mutex we are using here. If there is already a - different address store this is a bad user bug. */ - cond->__data.__mutex = mutex; + different address store this is a bad user bug. Do not store + anything for pshared condvars. */ + if (cond->__data.__mutex != (void *) ~0l) + cond->__data.__mutex = mutex; /* Prepare structure passed to cancellation handler. */ cbuffer.cond = cond; |