Ulrich Drepper
9437b427ce
Fix change to prevent cancel signal in unsafe places.
...
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.
2009-05-15 20:42:36 -07:00
Ulrich Drepper
1a7f254b4b
No cancel signal in unsafe places.
...
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-05-15 19:37:12 -07:00
Ulrich Drepper
d5c157a978
* cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
...
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.
2009-04-27 21:55:49 +00:00
Roland McGrath
8dea90aab0
* sysdeps/mach/hurd/ifreq.c: Add missing #includes.
2005-12-21 22:54:00 +00:00
Ulrich Drepper
a334319f65
(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
2004-12-22 20:10:10 +00:00
Jakub Jelinek
0ecb606cb6
2.5-18.1
2007-07-12 18:26:36 +00:00
Ulrich Drepper
4efdd8d355
Update.
...
2003-12-19 Ulrich Drepper <drepper@redhat.com>
* eintr.c (setup_eintr): Add new parameter. Pass to thread function.
(eintr_source): If ARG != NULL, use pthread_kill.
* tst-eintr1.c: Adjust for this change.
* tst-eintr2.c: Likewise.
* Makefile (tests): Add tst-eintr3 and tst-eintr4.
* tst-eintr3.c: New file.
* tst-eintr4.c: New file.
2003-12-19 Jakub Jelinek <jakub@redhat.com>
* libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
if CANCELSTATE_BITMASK is set.
* sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
Likewise.
* Makefile (tests): Add tst-cancel22 and tst-cancel23.
(tests-reverse): Add tst-cancel23.
* tst-cancel22.c: New test.
* tst-cancel23.c: New test.
2003-12-20 06:34:59 +00:00
Ulrich Drepper
ca2b4cd7b1
Update.
...
2003-07-01 Ulrich Drepper <drepper@redhat.com>
* libc-cancellation.c (__libc_cleanup_routine): Define.
* sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
(__pthread_cleanup_pop): Define.
2003-07-02 05:13:15 +00:00
Ulrich Drepper
b22d701bb7
Update.
...
2003-04-04 Ulrich Drepper <drepper@redhat.com>
* sysdeps/pthread/createthread.c (create_thread): Add some more
comments explaining when to set multiple_threads and when not.
* pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
THREAD_ATOMIC_BIT_SET if not already defined.
* sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
THREAD_ATOMIC_BIT_SET:
* sysdeps/x86_64/tls.h: Likewise.
* cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
THREAD_ATOMIC_CMPXCHG_VAL.
(_pthread_cleanup_pop_restore): Likewise.
* cancellation.c (__pthread_enable_asynccancel): Likewise.
(__pthread_enable_asynccancel_2): Likewise.
(__pthread_disable_asynccancel): Likewise.
* libc-cancellation.c (__libc_enable_asynccancel): Likewise.
(__libc_disable_asynccancel): Likewise.
* init.c (sigcancel_handler): Likewise.
* pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
* pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
2003-04-05 05:21:15 +00:00
Ulrich Drepper
86246935da
Update.
...
2003-04-03 Ulrich Drepper <drepper@redhat.com>
* init.c (sigcancel_handler): Don't set EXITING_BIT here.
* libc-cancellation.c (__libc_enable_asynccancel): Likewise.
* pthreadP.h (__do_cancel): Set EXITING_BIT here.
* Makefile (tests): Add tst-cancel11.
* tst-cancel11.c: New file.
2003-04-04 07:59:55 +00:00
Ulrich Drepper
5a3ab2fc18
Update.
...
2003-03-21 Ulrich Drepper <drepper@redhat.com>
* cancellation.c: Adjust for new form of compare&exchange macros.
* cleanup_defer.c: Likewise.
* init.c: Likewise.
* libc-cancellation.c: Likewise.
* old_pthread_cond_broadcast.c: Likewise.
* old_pthread_cond_signal.c: Likewise.
* old_pthread_cond_timedwait.c: Likewise.
* old_pthread_cond_wait.c: Likewise.
* pthread_cancel.c: Likewise.
* pthread_create.c: Likewise.
* pthread_detach.c: Likewise.
* pthread_join.c: Likewise.
* pthread_key_delete.c: Likewise.
* pthread_setcancelstate.c: Likewise.
* pthread_setcanceltype.c: Likewise.
* pthread_timedjoin.c: Likewise.
* pthread_tryjoin.c: Likewise.
* sysdeps/pthread/createthread.c: Likewise.
2003-03-21 08:03:25 +00:00
Ulrich Drepper
5a6bbb4160
Update.
...
* posix/Makefile (CFLAGS-regex.c): Remove RE_ENABLE_I18N definition.
* posix/regex_internal.h (RE_ENABLE_I18N): Pretty printing.
2003-02-23 09:58:08 +00:00
Ulrich Drepper
1564916ab9
Update.
...
2003-02-16 Ulrich Drepper <drepper@redhat.com>
* libc-cancellation.c (__libc_enable_asynccancel): Rwrite to avoid
going into an endless loop.
* Makefile (tests): Add tst-cancel9.
* tst-cancel9.c: New file.
* pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
2003-02-16 09:18:53 +00:00
Ulrich Drepper
f7f7f8150a
Update.
...
* include/time.h: Add libc_hidden_proto for __nanosleep.
* sysdeps/generic/nanosleep.c: Add libc_hidden_def for __nanosleep.
* sysdeps/mach/nanosleep.c: Likewise.
* sysdeps/unix/sysv/aix/nanosleep.c: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Add __GI___nanosleep alias.
2002-12-31 10:25:10 +00:00
Ulrich Drepper
9634cf9d4f
Update.
...
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/socket.S: Use CENABLE and CDISABLE
macros instead of doing the calls directly.
* sysdeps/unix/make-syscalls.sh: Add ptw-*.$o target name to rules.
* Makerules ($(+sysdir_pfx)sysd-rules): Emit rules for ptw-%
targets.
2002-12-16 Jakub Jelinek <jakub@redhat.com>
* sysdeps/i386/fpu/bits/mathinline.h: Backout last change.
* sysdeps/ieee754/bits/nan.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (__syscall_open,
__syscall_wait4, __syscall_ioctl, __syscall_write): Add.
2002-12-16 20:52:36 +00:00
Ulrich Drepper
b9633fccd3
Cancellation handling inside libc.
2002-12-13 10:35:39 +00:00