aboutsummaryrefslogtreecommitdiff
path: root/nptl/libc-cancellation.c
AgeCommit message (Collapse)AuthorFilesLines
2021-05-05nptl: Consolidate async cancel enable/disable implementation in libcFlorian Weimer1-24/+0
Previously, the source file nptl/cancellation.c was compiled multiple times, for libc, libpthread, librt. This commit switches to a single implementation, with new __pthread_enable_asynccancel@@GLIBC_PRIVATE, __pthread_disable_asynccancel@@GLIBC_PRIVATE exports. The almost-unused CANCEL_ASYNC and CANCEL_RESET macros are replaced by LIBC_CANCEL_ASYNC and LIBC_CANCEL_ASYNC macros. They call the __pthread_* functions unconditionally now. The macros are still needed because shared code uses them; Hurd has different definitions. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2021-01-02Update copyright dates with scripts/update-copyrightsPaul Eggert1-1/+1
I used these shell commands: ../glibc/scripts/update-copyrights $PWD/../gnulib/build-aux/update-copyright (cd ../glibc && git commit -am"[this commit message]") and then ignored the output, which consisted lines saying "FOO: warning: copyright statement not found" for each of 6694 files FOO. I then removed trailing white space from benchtests/bench-pthread-locks.c and iconvdata/tst-iconv-big5-hkscs-to-2ucs4.c, to work around this diagnostic from Savannah: remote: *** pre-commit check failed ... remote: *** error: lines with trailing whitespace found remote: error: hook declined to update refs/heads/master
2020-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2019-09-07Prefer https to http for gnu.org and fsf.org URLsPaul Eggert1-1/+1
Also, change sources.redhat.com to sourceware.org. This patch was automatically generated by running the following shell script, which uses GNU sed, and which avoids modifying files imported from upstream: sed -ri ' s,(http|ftp)(://(.*\.)?(gnu|fsf|sourceware)\.org($|[^.]|\.[^a-z])),https\2,g s,(http|ftp)(://(.*\.)?)sources\.redhat\.com($|[^.]|\.[^a-z]),https\2sourceware.org\4,g ' \ $(find $(git ls-files) -prune -type f \ ! -name '*.po' \ ! -name 'ChangeLog*' \ ! -path COPYING ! -path COPYING.LIB \ ! -path manual/fdl-1.3.texi ! -path manual/lgpl-2.1.texi \ ! -path manual/texinfo.tex ! -path scripts/config.guess \ ! -path scripts/config.sub ! -path scripts/install-sh \ ! -path scripts/mkinstalldirs ! -path scripts/move-if-change \ ! -path INSTALL ! -path locale/programs/charmap-kw.h \ ! -path po/libc.pot ! -path sysdeps/gnu/errlist.c \ ! '(' -name configure \ -execdir test -f configure.ac -o -f configure.in ';' ')' \ ! '(' -name preconfigure \ -execdir test -f preconfigure.ac ';' ')' \ -print) and then by running 'make dist-prepare' to regenerate files built from the altered files, and then executing the following to cleanup: chmod a+x sysdeps/unix/sysv/linux/riscv/configure # Omit irrelevant whitespace and comment-only changes, # perhaps from a slightly-different Autoconf version. git checkout -f \ sysdeps/csky/configure \ sysdeps/hppa/configure \ sysdeps/riscv/configure \ sysdeps/unix/sysv/linux/csky/configure # Omit changes that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/powerpc/powerpc64/ppc-mcount.S: trailing lines git checkout -f \ sysdeps/powerpc/powerpc64/ppc-mcount.S \ sysdeps/unix/sysv/linux/s390/s390-64/syscall.S # Omit change that caused a pre-commit check to fail like this: # remote: *** error: sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S: last line does not end in newline git checkout -f sysdeps/sparc/sparc64/multiarch/memcpy-ultra3.S
2019-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2018-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
* All files with FSF copyright notices: Update copyright dates using scripts/update-copyrights. * locale/programs/charmap-kw.h: Regenerated. * locale/programs/locfile-kw.h: Likewise.
2017-01-01Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2016-01-04Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2015-01-02Update copyright dates with scripts/update-copyrights.Joseph Myers1-1/+1
2014-01-01Update copyright notices with scripts/update-copyrightsAllan McRae1-1/+1
2013-01-02Update copyright notices with scripts/update-copyrights.Joseph Myers1-1/+1
2012-02-09Replace FSF snail mail address with URLs.Paul Eggert1-3/+2
2009-05-16libc-cancellation.c cleanup.Ulrich Drepper1-8/+0
The unrelated function __libc_cleanup_routine should not be in this file. Move it into its own file.
2009-05-16Unify source for async cancel handling.Ulrich Drepper1-99/+3
Unify all three places where we enable async cancellation for syscalls. Optimize a bit.
2009-05-15Fix change to prevent cancel signal in unsafe places.Ulrich Drepper1-6/+2
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-15No cancel signal in unsafe places.Ulrich Drepper1-1/+13
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-04-27* cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_ANDUlrich Drepper1-1/+6
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.
2005-12-21* sysdeps/mach/hurd/ifreq.c: Add missing #includes.Roland McGrath1-2/+2
2004-12-22(CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.Ulrich Drepper1-2/+2
2007-07-122.5-18.1Jakub Jelinek1-2/+2
2003-12-20Update.Ulrich Drepper1-2/+3
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-07-02Update.Ulrich Drepper1-0/+9
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-04-05Update.Ulrich Drepper1-18/+30
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-04Update.Ulrich Drepper1-3/+0
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-03-21Update.Ulrich Drepper1-15/+14
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-02-23Update.Ulrich Drepper1-1/+1
* posix/Makefile (CFLAGS-regex.c): Remove RE_ENABLE_I18N definition. * posix/regex_internal.h (RE_ENABLE_I18N): Pretty printing.
2003-02-16Update.Ulrich Drepper1-12/+22
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.
2002-12-31Update.Ulrich Drepper1-1/+1
* 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-16Update.Ulrich Drepper1-0/+4
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-13Cancellation handling inside libc.Ulrich Drepper1-0/+84