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/sysdeps/unix/sysv/linux/lowlevellock.c | |
parent | 43b768284325b7e7d2ec3fc3dcac13a35c378c95 (diff) | |
download | glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.tar glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.tar.gz glibc-835abc5c0dfd1ba8aabeb52d46793b13702c708b.tar.bz2 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/sysdeps/unix/sysv/linux/lowlevellock.c')
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/lowlevellock.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/lowlevellock.c b/nptl/sysdeps/unix/sysv/linux/lowlevellock.c index 38d78884d4..ab7f605f0c 100644 --- a/nptl/sysdeps/unix/sysv/linux/lowlevellock.c +++ b/nptl/sysdeps/unix/sysv/linux/lowlevellock.c @@ -31,7 +31,9 @@ __lll_lock_wait (int *futex) { int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1); if (oldval != 0) - lll_futex_wait (futex, 2); + lll_futex_wait (futex, 2, + // XYZ check mutex flag + LLL_SHARED); } while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0); } @@ -68,7 +70,9 @@ __lll_timedlock_wait (int *futex, const struct timespec *abstime) /* Wait. */ int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1); if (oldval != 0) - lll_futex_timed_wait (futex, 2, &rt); + lll_futex_timed_wait (futex, 2, &rt, + // XYZ check mutex flag + LLL_SHARED); } while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0); @@ -108,8 +112,9 @@ __lll_timedwait_tid (int *tidp, const struct timespec *abstime) if (rt.tv_sec < 0) return ETIMEDOUT; - /* Wait until thread terminates. */ - if (lll_futex_timed_wait (tidp, tid, &rt) == -ETIMEDOUT) + /* Wait until thread terminates. The kernel so far does not use + the private futex operations for this. */ + if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT) return ETIMEDOUT; } |