Age | Commit message (Collapse) | Author |
|
|
|
|
|
Register eax contains the syscall number, use a different one instead.
|
|
|
|
|
|
|
|
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.
|
|
Better definition of the *_NITSET macros.
|
|
|
|
|
|
SSE registers are used for passing parameters and must be preserved
in runtime relocations. This is inside ld.so enforced through the
tests in tst-xmmymm.sh. But the malloc routines used after startup
come from libc.so and can be arbitrarily complex. It's overkill
to save the SSE registers all the time because of that. These calls
are rare. Instead we save them on demand. The new infrastructure
put in place in this patch makes this possible and efficient.
|
|
|
|
|
|
This reverts commit 7b7f43bed134db6a0da34282fffcbf0af10d4613.
|
|
All commits should have happened before the mutex lock is taken.
Therefore use the _rel variant of the cmpxchg atomic op.
|
|
We need this support in NPTL now to avoid the hand-coded tables.
|
|
|
|
|
|
Add support for the new FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI
options of futex.
|
|
It just happens that __pthread_enable_asynccancel doesn't modify the $rdi
register. But this isn't guaranteed. Hence we reload the register after
the calls.
|
|
timeout.
|
|
|
|
timeout.
|
|
|
|
timeout.
|
|
|
|
|
|
|
|
Instead of actively registering an unwind buffer we now use the
exception handling functionality of the gcc runtime.
|
|
Instead of actively registering an unwind buffer we now use the
exception handling functionality of the gcc runtime.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The kernel from 2.3.31 on supports the rt_tgsigqueueinfo syscall.
Use it to implement the non-standard extension which, like
sigqueue, can pass additional data to the receiving thread.
|
|
This affects only installations compiled for kernels older than 2.6.18.
|
|
The unrelated function __libc_cleanup_routine should not be in
this file. Move it into its own file.
|
|
Unify all three places where we enable async cancellation for
syscalls. Optimize a bit.
|
|
Needed to allow overwriting architectures init.c in csu and nptl
individually. Fixes BZ #9924.
|
|
|
|
Due to a pasto the fallocate64 interface, introduced in glibc 2.10,
isn't exported for 32-bit Linux platforms. It is too late for this
now so exported them for glibc 2.11.
|
|
Because we are not shutting down the other threads first another
thread might work on a query before the process shuts down. In this
case the now uninitialized libselinux and libaudit might be used.
Just don't free the resources. It's not necessary anyway because
the process is about to terminate.
|
|
The bits tested to decide when to delay the return when switching
off async cancel mode were wrong. Fix that. Also close a race
condition in pthread_cancel where the bit indicating the cancellation
is unconditionally set even if the cancel type might have changed.
|
|
When disabling async cancellation we cannot return from the function
call if the thread is canceled. This happens when the cancel bits
have been set before async cancel is disabled but the signal hasn't
been sent/received yet. Delay for as long as necessary since
otherwise the signal might be received in an unsafe context.
|
|
2009-01-07 Ulrich Drepper <drepper@redhat.com>
* (in_flight_stack): New variable.
(stack_list_del): New function. Use instead of list_del.
(stack_list_add): New function. Use instead of list_add when adding to
stack_cache and stack_used lists.
(__reclaim_stacks): Complete operations on stack_cache and stack_used lists
when the fork call interrupted another thread.
|
|
is available.
* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
* sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
* sysdeps/i386/tls.h: Likewise.
(tcbhead_t): Add __private_tm member.
|
|
avoid warnings.
|