Andreas Schwab
e3f45e2bbe
Revert "Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout"
...
This reverts commit 1bd57044e9
.
2013-01-10 10:44:05 +01:00
Andreas Schwab
1bd57044e9
Extend i486 pthread_cond_timedwait to use futex syscall with absolute timeout
...
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
(__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
directly use absolute timeout.
2013-01-10 09:59:58 +01:00
Joseph Myers
568035b787
Update copyright notices with scripts/update-copyrights.
2013-01-02 19:05:09 +00:00
Siddhesh Poyarekar
9485a40444
Adjust mutex lock in condvar_cleanup if we got it from requeue_pi
...
This completes the fix to bz #14652 .
2012-10-16 14:23:35 +05:30
Siddhesh Poyarekar
0e3b5d6a68
Take lock in pthread_cond_wait cleanup handler only when needed
...
[BZ #14652 ]
When a thread waiting in pthread_cond_wait with a PI mutex is
cancelled after it has returned successfully from the futex syscall
but just before async cancellation is disabled, it enters its
cancellation handler with the mutex held and simply calling a
mutex_lock again will result in a deadlock. Hence, it is necessary to
see if the thread owns the lock and try to lock it only if it doesn't.
2012-10-10 12:52:56 +05:30
Siddhesh Poyarekar
c30e8edf7c
Unlock mutex before going back to waiting for PI mutexes
...
[BZ #14417 ]
A futex call with FUTEX_WAIT_REQUEUE_PI returns with the mutex locked
on success. If such a successful thread is pipped to the cond_lock by
another spuriously woken waiter, it could be sent back to wait on the
futex with the mutex lock held, thus causing a deadlock. So it is
necessary that the thread relinquishes the mutex before going back to
sleep.
2012-10-05 18:52:36 +05:30
Siddhesh Poyarekar
adcdc775e1
Fix clone flag name in comment to CLONE_CHILD_CLEARTID.
2012-10-02 08:52:55 +05:30
Siddhesh Poyarekar
55a051c985
Fix exception table for i386 pthread_cond_wait
...
[BZ #14477 ]
Add an additional entry in the exception table to jump to
__condvar_w_cleanup2 instead of __condvar_w_cleanup for PI mutexes
when %ebx contains the address of the futex instead of the condition
variable.
2012-10-01 23:21:39 +05:30
Joseph Myers
93a78ac437
Remove __ASSUME_POSIX_TIMERS.
2012-08-16 14:03:43 +00:00
Andreas Schwab
842a39cd1a
Remove unused pseudo_end label
2012-07-25 21:58:17 +02:00
H.J. Lu
0e20515a17
Use x86-64 bits/pthreadtypes.h/semaphore.h for i386/x86-64
2012-05-30 17:29:22 -07:00
Andreas Schwab
4d17e68350
Remove use of INTDEF/INTUSE in nptl
2012-05-30 00:45:53 +02:00
Rayson Ho
1755728208
i386 port of the pthread SystemTap probes
2012-05-25 13:41:04 -07:00
Andreas Jaeger
de7f5ce7c5
Fix warnings on Linux/i686
...
Fixes:
../sysdeps/i386/dl-machine.h:336:30: warning: unused variable ‘refsym’ [-Wunused-variable]
rtld.c:1435:3: warning: implicit declaration of function ‘_dl_discover_osversion’ [-Wimplicit-function-declaration]
2012-05-17 20:17:53 +02:00
Thomas Schwinge
48aff7765b
Fix 9554ebf2d4
.
...
| Invalid timeouts in i386 sem_timedwait.
|
| We adjusted nwaiters even though this isn't necessary.
2012-03-08 09:33:12 +01:00
David S. Miller
22f9d9df92
Fix stray references to __pthread_attr
...
* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to non-existing
__pthread_attr.
* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2012-02-27 12:59:16 -08:00
Ulrich Drepper
8da0464f6f
Fix name mangling of pthread_attr_t after change
2012-02-26 21:42:53 -05:00
Ulrich Drepper
4a3dded527
Work around problem of pthread_attr_t definition with old compilers
2012-02-26 17:41:17 -05:00
Ulrich Drepper
4efeffc1d5
Fix up POSIX testing in conformtest
2012-02-26 13:17:27 -05:00
Paul Eggert
59ba27a63a
Replace FSF snail mail address with URLs.
2012-02-09 23:18:22 +00:00
Joseph Myers
3add8e1353
Support crti.S and crtn.S provided directly by architectures.
2012-02-08 01:45:26 +00:00
Joseph Myers
9a1d92541f
Consistently use macros for x86 PIC thunks.
2012-02-03 23:22:53 +00:00
Andreas Schwab
c5a0802a68
Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI
2011-11-30 11:03:19 +01:00
Ulrich Drepper
d063d16433
Remove support for !USE___THREAD
2011-09-10 16:50:28 -04:00
Dinakar Guniguntala
022f6b8920
Fix x86 pthread_cond_signal() FUTEX_WAKE_OP fallback
2010-08-19 00:46:19 -07:00
H.J. Lu
f8392f4004
Add -fno-asynchronous-unwind-tables to initfini.s for i386
2010-08-15 20:09:23 -07:00
Andreas Schwab
2983d85ee5
Work around kernel rejecting valid absolute timestamps
2010-07-01 19:07:14 -07:00
Michal Schmidt
893549c5a0
Fix pthread_cond_*wait with requeue-PI on i386.
2010-01-15 18:09:14 -08:00
Ulrich Drepper
23b8575625
More whitespace fixes.
2009-12-13 11:52:28 -08:00
Ulrich Drepper
5a9e37df22
Fix whitespaces.
2009-12-13 11:51:54 -08:00
Dinakar Guniguntala
75956694f3
Add Requeue-PI support for x86 arch.
2009-12-13 11:50:16 -08:00
Ulrich Drepper
9554ebf2d4
Invalid timeouts in i386 sem_timedwait.
...
We adjusted nwaiters even though this isn't necessary.
2009-12-12 11:06:23 -08:00
Roland McGrath
57a299fe47
Use #include instead of duplication for i386 vs i686 dl-sysdep.h in NPTL.
2009-11-22 17:49:21 -08:00
Ulrich Drepper
dfedb126d6
Minor optimizations and cleanups of x86 cond_broadcast.
2009-11-18 06:40:25 -08:00
Dinakar Guniguntala
dd7106b3c6
Update cfi offsets for pthread_cond_broadcast and signal fir x86.
2009-11-18 06:33:23 -08:00
Ulrich Drepper
f8c10bb45b
Use cfi directives in x86 pthread_cond_{,timed}wait.
2009-11-17 17:59:33 -08:00
Bryan Kadzban
1828530f09
Fix futex syscall parameter for x86 absolute timeout waits.
...
This affects only installations compiled for kernels older than 2.6.18.
2009-06-11 11:32:51 -07:00
Ulrich Drepper
45f7760695
(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_READTIME instead of computing relative timeout.
2009-01-03 23:17:21 +00:00
Ulrich Drepper
7dd650d7fc
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
...
FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2009-01-03 03:45:07 +00:00
Ulrich Drepper
da5ac1352d
* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname3_r): Recognize
...
ESRCH return value.
(_nss_dns_gethostbyname4_r): Likewise.
* resolv/res_init.c (__res_vinit): Initialize nscount to zero.
* sysdeps/posix/getaddrinfo.c (gaih_inet): In case we use
gethostbyname4_r, we don't have a separate IPv6 status, so copy
the no_data variable.
2008-12-03 07:30:39 +00:00
Andreas Jaeger
2458c74851
* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
...
lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
lll_timedlock, lll_robust_timedlock, lll_unlock,
lll_robust_unlock): Promote private to int.
2008-09-08 Richard Guenther <rguenther@suse.de>
* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
lll_timedlock, lll_robust_timedlock, lll_unlock,
lll_robust_unlock): Promote private to int.
2008-09-23 18:50:28 +00:00
Ulrich Drepper
62605cbfcb
Remove useless more "if" tests before "free".
...
* include/inline-hashtab.h (htab_delete): Likewise.
* libio/freopen.c (freopen): Likewise.
* libio/freopen64.c (freopen64): Likewise.
* locale/programs/ld-collate.c (collate_read): Likewise.
* misc/fstab.c (libc_freeres_fn): Likewise.
* posix/glob.c (globfree): Likewise.
2008-05-27 06:04:07 +00:00
Ulrich Drepper
cdffaaa615
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
...
__pshared correctly.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
Likewise.
* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
Likewise.
Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
2008-05-11 05:42:25 +00:00
Jakub Jelinek
354b75277b
* sysdeps/unix/sysv/linux/dl-sysdep.h: Use __ASSEMBLER__ instead
...
of ASSEMBLER. nptl/
* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
of ASSEMBLER.
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
2008-03-18 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/dl-sysdep.h: Use __ASSEMBLER__ instead
of ASSEMBLER.
2008-03-17 23:41:58 +00:00
Ulrich Drepper
4564918515
Fix typo.
2008-03-14 21:52:57 +00:00
Ulrich Drepper
702ae32909
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
...
HAVE_DL_DISCOVER_OSVERSION.
* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
2008-03-14 21:49:02 +00:00
Ulrich Drepper
ab355d9aa5
* pthread-errnos.sym: Add EOVERFLOW.
...
* sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
* sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
2008-01-10 18:34:43 +00:00
Ulrich Drepper
c012be6f99
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
...
Store 2 before returning ETIMEDOUT.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
(__lll_lock_wait_private): Optimize.
(__lll_lock_wait): Likewise.
2007-11-24 01:16:53 +00:00
Ulrich Drepper
cbed6a607d
[BZ #5240 ]
...
* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
If we time out, try one last time to lock the futex to avoid
losing a wakeup signal.
* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
2007-11-09 09:09:07 +00:00
Jakub Jelinek
96c06e084b
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
...
routine instead of an alias to __new_sem_post.
2007-10-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
routine instead of an alias to __new_sem_post.
2007-10-17 14:34:44 +00:00