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
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
Roland McGrath
5acf7263d5
Add systemtap static probe points in generic and x86_64 pthread code.
2012-05-25 13:41:03 -07:00
H.J. Lu
f16af74217
Use R*_LP to load pointer and operate on stack
2012-05-15 14:25:31 -07:00
H.J. Lu
d9754f5572
Use LP_OP(cmp) and RCX_LP on dep_mutex pointer
2012-05-15 13:39:25 -07:00
H.J. Lu
dde05f0093
Use LP_OP(op), LP_SIZE and ASM_ADDR in sem_wait.S
2012-05-15 12:48:26 -07:00
H.J. Lu
9dba3b5c0a
se LP_OP(op), LP_SIZE and ASM_ADDR in sem_timedwait.S
2012-05-15 12:47:31 -07:00
H.J. Lu
5f658cf147
Use LP_OP(cmp) on NWAITERS
2012-05-15 10:25:51 -07:00
H.J. Lu
6cae4b26ca
Use LP_SIZE and ASM_ADDR in pthread_once.S
2012-05-15 10:24:19 -07:00
H.J. Lu
592f90e6ec
Use LP_OP(cmp), R*_LP, LP_SIZE and ASM_ADDR
2012-05-15 10:23:22 -07:00
H.J. Lu
0e8860ad21
Use LP_OP(cmp), R*_LP, LP_SIZE and ASM_ADDR
2012-05-15 10:21:32 -07:00
H.J. Lu
30996e9369
Use LP_OP(cmp) and RCX_LP on dep_mutex pointer
2012-05-15 10:20:15 -07:00
H.J. Lu
289ac4352a
Use LP_OP(mov) and RDI_LP on pointer
2012-05-15 10:19:11 -07:00
H.J. Lu
10f74fbcde
Use LP_SIZE and load timeout pointer into RDX_LP
2012-05-15 10:03:56 -07:00
H.J. Lu
b8caea2cb9
Add x32 pthread types
2012-05-14 12:56:56 -07:00
H.J. Lu
c0d2c8538a
Check __x86_64__ for __cleanup_fct_attribute
2012-05-11 10:12:42 -07:00
H.J. Lu
4adaaafc9e
Use __NR_futex to define SYS_futex
2012-03-19 14:54:35 -07: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
Marek Polacek
d463ab10dd
Remove unused Makefile.
2012-02-15 21:07:06 +01:00
Paul Eggert
59ba27a63a
Replace FSF snail mail address with URLs.
2012-02-09 23:18:22 +00:00
Andreas Schwab
c5a0802a68
Handle EAGAIN from FUTEX_WAIT_REQUEUE_PI
2011-11-30 11:03:19 +01:00
Ulrich Drepper
c2b18f7a0e
Add missing register initialization in x86-64 pthread_cond_timedwait
2011-10-29 15:50:01 -04:00
Ulrich Drepper
d063d16433
Remove support for !USE___THREAD
2011-09-10 16:50:28 -04:00
H.J. Lu
1e4bd093e6
Fix macro used in test
2011-09-08 23:53:04 -04:00
Ulrich Drepper
9e5c9dcd57
Remove gettimeofday vsyscall use from x86-86 libpthread
2011-09-07 00:14:06 -04:00
Ulrich Drepper
a0e1f41bd4
Don't call gettimeofday vsyscall in x86-64 sem_timedwait
2011-09-06 23:17:53 -04:00
Andreas Schwab
a724d1b9bf
Fix stack alignment on x86_64
2011-08-09 10:07:10 -04:00
Andreas Schwab
2983d85ee5
Work around kernel rejecting valid absolute timestamps
2010-07-01 19:07:14 -07:00
Andreas Schwab
b55ec98c64
Fix infloop in __pthread_disable_asynccancel on x86_64
2009-11-27 21:37:30 -08:00
Ulrich Drepper
62616842ec
Minimal unwind section size reduction.
2009-11-17 23:13:08 -08:00
Ulrich Drepper
cd16986ee3
Rvert accidental checkins.
2009-08-22 17:58:04 -07:00
Andreas Schwab
15efafdf07
Add sigstack handling to Linux ____longjmp_chk on powerpc.
2009-08-22 02:01:51 -07:00
Ulrich Drepper
ae0d545003
Add CFI directives to x86-64 pthread_rwlock_unlock.
2009-08-11 20:47:36 -07:00
Ulrich Drepper
1bc2b97ee4
Add CFI directives to x86-64 pthread_rwlock_{rd,wr)lock.
2009-08-10 11:26:16 -07:00
Andreas Schwab
ec4922395b
Fix check for PI mutex in x86-64 pthread_cond_signal
...
Register eax contains the syscall number, use a different one instead.
2009-08-10 08:10:11 -07:00
Ulrich Drepper
efa0569d2b
Optimize x86-64 version of sem_timedwait.
2009-08-08 17:48:09 -07:00
Ulrich Drepper
49eea97b00
Another minor optimization of x86-64 pthread_cond_wait.
2009-08-08 10:21:46 -07:00
Ulrich Drepper
9083bcc5dc
Small optimizations to cancellable x86-64 code.
2009-08-07 20:36:53 -07:00
Ulrich Drepper
421665c40a
Optimize x86-64 syscall cancellation handling.
...
The syscall wrappers had to save and restore the syscall parameter
values and return value when calling the functions to enable/disable
cancellation were called. Not anymore. The called functions are
special and don't modify any unexpected registers.
2009-08-04 11:03:46 -07:00
Ulrich Drepper
b0948ffdcb
Fix bookkeeping in mutex when using requeue_pi.
2009-07-28 09:40:39 -07:00
Ulrich Drepper
f1adf1f490
Fix pthread_cond_timedwait error handling on old kernels.
2009-07-23 16:39:06 -07:00