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/pthread_cond_init.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/pthread_cond_init.c')
-rw-r--r-- | nptl/pthread_cond_init.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c index 73ae4321b0..bb7c6d6ca1 100644 --- a/nptl/pthread_cond_init.c +++ b/nptl/pthread_cond_init.c @@ -36,6 +36,8 @@ __pthread_cond_init (cond, cond_attr) cond->__data.__total_seq = 0; cond->__data.__wakeup_seq = 0; cond->__data.__woken_seq = 0; + cond->__data.__mutex = (icond_attr == NULL || (icond_attr->value & 1) == 0 + ? NULL : (void *) ~0l); return 0; } |