diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-06-08 02:50:59 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-06-08 02:50:59 +0000 |
commit | 835abc5c0dfd1ba8aabeb52d46793b13702c708b (patch) | |
tree | 8863a99b99c334da2e2fe77459acca76dbac5ef0 /nptl/pthread_cond_wait.c | |
parent | 43b768284325b7e7d2ec3fc3dcac13a35c378c95 (diff) | |
download | glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.tar.gz glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.tar.xz glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.zip |
[BZ #4586]
2007-06-06 Jakub Jelinek <jakub@redhat.com> BZ #4586 * sysdeps/i386/ldbl2mpn.c (__mpn_extract_long_double): Treat pseudo-zeros as zero. * sysdeps/x86_64/ldbl2mpn.c: New file. * sysdeps/ia64/ldbl2mpn.c: New file.
Diffstat (limited to 'nptl/pthread_cond_wait.c')
-rw-r--r-- | nptl/pthread_cond_wait.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c index 6e00a28f6a..e524aa6c94 100644 --- a/nptl/pthread_cond_wait.c +++ b/nptl/pthread_cond_wait.c @@ -71,7 +71,9 @@ __condvar_cleanup (void *arg) if (cbuffer->cond->__data.__total_seq == -1ULL && cbuffer->cond->__data.__nwaiters < (1 << COND_NWAITERS_SHIFT)) { - lll_futex_wake (&cbuffer->cond->__data.__nwaiters, 1); + lll_futex_wake (&cbuffer->cond->__data.__nwaiters, 1, + // XYZ check mutex flag + LLL_SHARED); destroying = 1; } @@ -80,7 +82,9 @@ __condvar_cleanup (void *arg) /* Wake everybody to make sure no condvar signal gets lost. */ if (! destroying) - lll_futex_wake (&cbuffer->cond->__data.__futex, INT_MAX); + lll_futex_wake (&cbuffer->cond->__data.__futex, INT_MAX, + // XYZ check mutex flag + LLL_SHARED); /* Get the mutex before returning unless asynchronous cancellation is in effect. */ @@ -146,7 +150,9 @@ __pthread_cond_wait (cond, mutex) cbuffer.oldtype = __pthread_enable_asynccancel (); /* Wait until woken by signal or broadcast. */ - lll_futex_wait (&cond->__data.__futex, futex_val); + lll_futex_wait (&cond->__data.__futex, futex_val, + // XYZ check mutex flag + LLL_SHARED); /* Disable asynchronous cancellation. */ __pthread_disable_asynccancel (cbuffer.oldtype); @@ -175,7 +181,9 @@ __pthread_cond_wait (cond, mutex) and it can be successfully destroyed. */ if (cond->__data.__total_seq == -1ULL && cond->__data.__nwaiters < (1 << COND_NWAITERS_SHIFT)) - lll_futex_wake (&cond->__data.__nwaiters, 1); + lll_futex_wake (&cond->__data.__nwaiters, 1, + // XYZ check mutex flag + LLL_SHARED); /* We are done with the condvar. */ lll_mutex_unlock (cond->__data.__lock); |