about summary refs log tree commit diff
path: root/sysdeps/htl/pthreadP.h
Commit message (Collapse)AuthorAgeFilesLines
* htl: Fix tls initialization for already-created threadsSamuel Thibault2020-06-071-0/+3
| | | | | | | | | * sysdeps/htl/pthreadP.h: Include <link.h> (__pthread_init_static_tls): New prototype. * htl/pt-alloc.c (__pthread_init_static_tls): New function. * sysdeps/mach/hurd/htl/pt-sysdep.c (_init_routine): Initialize tcb field of initial thread. Set GL(dl_init_static_tls) to &__pthread_init_static_tls.
* htl: Add clock variantsSamuel Thibault2020-05-261-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * htl/pt-join.c (__pthread_join): Move implementation to... (__pthread_join_common): ... new function. Add try, timed and clock support. (__pthread_join): Reimplement on top of __pthread_join_common. (__pthread_tryjoin_np, __pthread_timedjoin_np, __pthread_clockjoin_np): Implement on top of __pthread_join_common. (pthread_tryjoin_np, pthread_timedjoin_np, pthread_clockjoin_np): New aliases. * hurd/hurdlock.c (__lll_abstimed_wait, __lll_abstimed_xwait, __lll_abstimed_lock): Check for supported clock. * sysdeps/htl/pt-cond-timedwait.c (__pthread_cond_timedwait_internal): Add clockid parameter and support it. (__pthread_cond_timedwait): Pass -1 as clockid. (__pthread_cond_clockwait): New function. (pthread_cond_clockwait): New alias. * sysdeps/htl/pt-cond-wait.c (__pthread_cond_timedwait_internal): Update prototype. (__pthread_cond_wait): Pass -1 as clockid. * sysdeps/htl/pt-rwlock-timedrdlock.c (__pthread_rwlock_timedrdlock_internal): Add clockid parameter, and support id. (__pthread_rwlock_clockrdlock): New function. (pthread_rwlock_clockrdlock): New alias. * sysdeps/htl/pt-rwlock-rdlock.c (__pthread_rwlock_timedrdlock_internal): Update prototype. (__pthread_rwlock_rdlock): Pass -1 as clockid. * sysdeps/htl/pt-rwlock-timedwrlock.c (__pthread_rwlock_timedwrlock_internal): Add clockid parameter, and support id. (__pthread_rwlock_clockwrlock): New function. (pthread_rwlock_clockwrlock): New alias. * sysdeps/htl/pt-rwlock-wrlock.c (__pthread_rwlock_timedwrlock_internal): Update prototype. (__pthread_rwlock_wrlock): Pass -1 as clockid. * sysdeps/mach/hurd/htl/pt-mutex-timedlock.c (__pthread_mutex_timedlock): Move implementation to (__pthread_mutex_clocklock): New function with additional clockid parameter and support it. (pthread_mutex_clocklock): New alias. (__pthread_mutex_timedlock): Reimplement on top of __pthread_mutex_clocklock. * sysdeps/htl/pthread.h (pthread_tryjoin_np, pthread_timedjoin_np, pthread_clockjoin_np, pthread_mutex_clocklock, pthread_cond_clockwait, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock): New prototypes. * sysdeps/htl/pthreadP.h (__pthread_cond_clockwait): New prototype. * htl/Versions (GLIBC_2.32): Add pthread_cond_clockwait, pthread_mutex_clocklock, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock, pthread_tryjoin_np, pthread_timedjoin_np, pthread_clockjoin_np. * sysdeps/mach/hurd/i386/libpthread.abilist (pthread_clockjoin_np, pthread_cond_clockwait, pthread_mutex_clocklock, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock, pthread_timedjoin_np, pthread_tryjoin_np): New functions. * nptl/tst-abstime.c, nptl/tst-join10.c, nptl/tst-join11.c, nptl/tst-join12.c, nptl/tst-join13.c, nptl/tst-join14.c, nptl/tst-join2.c, nptl/tst-join3.c, nptl/tst-join8.c, nptl/tst-join9.c, nptl/tst-mutex-errorcheck.c, nptl/tst-pthread-mutexattr.c, nptl/tst-mutex11.c, nptl/tst-mutex5.c, nptl/tst-mutex7.c, nptl/tst-mutex7robus.c, nptl/tst-mutex9.c, nptl/tst-rwlock12.c, nptl/tst-rwlock14.c: Move to sysdeps/pthread. * sysdeps/pthread/tst-mutex8.c: Move back to nptl. * nptl/Makefile (tests): Move tst-mutex5, tst-mutex7, tst-mutex7robust, tst-mutex9, tst-mutex11, tst-rwlock12, tst-rwlock14, tst-join2, tst-join3, tst-join8, tst-join9 tst-join10, tst-join11, tst-join12, tst-join13, tst-join14, tst-abstime, tst-mutex-errorcheck, tst-pthread-mutexattr to ... * sysdeps/pthread/Makefile (tests): ... here.
* pthread: Move robust mutex tests from nptl to sysdeps/pthreadSamuel Thibault2020-02-161-0/+2
| | | | | tst-robust8.c prints some mutex internals for nptl debugging, this needed to be made conditioned by getting built with nptl.
* htl: Add support for libc cancellation pointsSamuel Thibault2020-02-101-0/+1
|
* htl: clean __pthread_get_cleanup_stack hidden protoSamuel Thibault2020-02-101-1/+1
|
* C11 threads: Move implementation to sysdeps/pthreadSamuel Thibault2020-02-091-0/+2
| | | | | | | so it gets shared by nptl and htl. Also add htl versions of thrd_current and thrd_yield. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* htl: Add support for C11 threads behaviorSamuel Thibault2020-02-091-0/+3
| | | | | | | Essentially properly calling the thread function which returns an int instead of a void*. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
* htl: Add missing internal functions declarationsSamuel Thibault2020-02-091-0/+13
|
* htl: Rename _pthread_mutex_init/destroy to __pthread_mutex_init/destroySamuel Thibault2020-02-091-2/+3
|
* htl: Add internal version of __pthread_mutex_timedlockSamuel Thibault2020-01-131-0/+2
| | | | The C11 threads implementation will need it.
* htl: Add type sizes in bits/pthreadtypes-arch.h and check themSamuel Thibault2020-01-131-0/+4
|
* htl: Add internal versions of functions used by C11 threadsSamuel Thibault2020-01-131-0/+1
| | | | | The C11 threads implementation needs to call pthread_join and pthread_key_delete without exposing them.
* Update copyright dates with scripts/update-copyrights.Joseph Myers2020-01-011-1/+1
|
* Prefer https to http for gnu.org and fsf.org URLsPaul Eggert2019-09-071-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
* Update copyright dates with scripts/update-copyrights.Joseph Myers2019-01-011-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.
* hurd: Avoid PLTs for __pthread_get/setspecificSamuel Thibault2018-08-091-0/+2
| | | | | | | * sysdeps/htl/pthreadP.h [IS_IN (libpthread)] (__pthread_getspecific, __pthread_setspecific): Add hidden proto. * sysdeps/htl/pt-getspecific.c (__pthread_getspecific): Add hidden def. * sysdeps/htl/pt-setspecific.c (__pthread_setspecific): Add hidden def.
* hurd: Fix missing __pthread_get_cleanup_stack symbolSamuel Thibault2018-06-161-0/+1
| | | | | | | | | | | | | | | | | | | Rework 57e1651557e8 ("hurd: Avoid PLT ref for __pthread_get_cleanup_stack") to keep the __pthread_get_cleanup_stack symbol. * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Rename to ___pthread_get_cleanup_stack. (__pthread_get_cleanup_stack): Remove hidden def, add alias. * htl/pt-exit.c (__pthread_exit): Use ___pthread_get_cleanup_stack instead of __pthread_get_cleanup_stack. * sysdeps/htl/pthread-functions.h [libpthread] (__pthread_get_cleanup_stack): Remove hidden proto. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add prototype. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Add hidden attribute. * htl/pt-join.c (__pthread_get_cleanup_stack): Define to ___pthread_get_cleanup_stack.
* hurd: Avoid PLT ref for __pthread_get_cleanup_stackSamuel Thibault2018-06-161-1/+0
| | | | | | | | | | | | * htl/pt-cleanup.c (___pthread_get_cleanup_stack): Rename to __pthread_get_cleanup_stack. (__pthread_get_cleanup_stack): Remove alias, add hidden def. * htl/pt-exit.c (__pthread_exit): Use __pthread_get_cleanup_stack instead of ___pthread_get_cleanup_stack. * sysdeps/htl/pthread-functions.h [libpthread] (__pthread_get_cleanup_stack): Add hidden proto. * sysdeps/htl/pthreadP.h (___pthread_get_cleanup_stack): Remove prototype.
* hurd: Avoid local PLTs in libpthread.Samuel Thibault2018-04-021-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * htl/cthreads-compat.c (__cthread_detach): Call __pthread_detach instead of pthread_detach. (__cthread_fork): Call __pthread_create instead of pthread_create. (__cthread_keycreate): Call __pthread_key_create instead of pthread_key_create. (__cthread_getspecific): Call __pthread_getspecific instead of pthread_getspecific. (__cthread_setspecific): Call __pthread_setspecific instead of pthread_setspecific. * htl/pt-alloc.c (__pthread_alloc): Call __pthread_mutex_lock and __pthread_mutex_unlock instead of pthread_mutex_lock and pthread_mutex_unlock. * htl/pt-cleanup.c (__pthread_get_cleanup_stack): Rename to ___pthread_get_cleanup_stack. (__pthread_get_cleanup_stack): New strong alias. * htl/pt-create.c: Include <pthreadP.h>. (entry_point): Call __pthread_exit instead of pthread_exit. (pthread_create): Rename to __pthread_create. (pthread_create): New strong alias. * htl/pt-detach.c (pthread_detach): Rename to __pthread_detach. (pthread_detach): New strong alias. (__pthread_detach): Call __pthread_cond_broadcast instead of pthread_cond_broadcast. * htl/pt-exit.c (__pthread_exit): Call __pthread_setcancelstate instead of pthread_setcancelstate. * htl/pt-testcancel.c: Include <pthreadP.h>. (pthread_testcancel): Call __pthread_exit instead of pthread_exit. * sysdeps/htl/pt-attr-getstack.c: Include <pthreadP.h> (__pthread_attr_getstack): Call __pthread_attr_getstackaddr and __pthread_attr_getstacksize instead of pthread_attr_getstackaddr and pthread_attr_getstacksize. * sysdeps/htl/pt-attr-getstackaddr.c (pthread_attr_getstackaddr): Rename to __pthread_attr_getstackaddr. (pthread_attr_getstackaddr): New strong alias. * sysdeps/htl/pt-attr-getstacksize.c (pthread_attr_getstacksize): Rename to __pthread_attr_getstacksize. (pthread_attr_getstacksize): New strong alias. * sysdeps/htl/pt-attr-setstack.c: Include <pthreadP.h>. (pthread_attr_setstack): Rename to __pthread_attr_setstack. (pthread_attr_setstack): New strong alias. (__pthread_attr_setstack): Call __pthread_attr_getstacksize, __pthread_attr_setstacksize and __pthread_attr_setstackaddr instead of pthread_attr_getstacksize, pthread_attr_setstacksize and pthread_attr_setstackaddr. * sysdeps/htl/pt-attr-setstackaddr.c (pthread_attr_setstackaddr): Rename to __pthread_attr_setstackaddr. (pthread_attr_setstackaddr): New strong alias. * sysdeps/htl/pt-attr-setstacksize.c (pthread_attr_setstacksize): Rename to __pthread_attr_setstacksize. (pthread_attr_setstacksize): New strong alias. * sysdeps/htl/pt-cond-timedwait.c: Include <pthreadP.h>. (__pthread_cond_timedwait_internal): Use __pthread_exit instead of pthread_exit. * sysdeps/htl/pt-key-create.c: Include <pthreadP.h>. (__pthread_key_create): New hidden def. * sysdeps/htl/pt-key.h: Include <pthreadP.h>. * sysdeps/htl/pthreadP.h (_pthread_mutex_init, __pthread_cond_broadcast, __pthread_create, __pthread_detach, __pthread_exit, __pthread_key_create, __pthread_getspecific, __pthread_setspecific, __pthread_setcancelstate, __pthread_attr_getstackaddr, __pthread_attr_setstackaddr, __pthread_attr_getstacksize, __pthread_attr_setstacksize, __pthread_attr_setstack, ___pthread_get_cleanup_stack): New declarations. (__pthread_key_create, _pthread_mutex_init): New hidden declarations. * sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c (pthread_attr_setstackaddr): Rename to __pthread_attr_setstackaddr. (pthread_attr_setstackaddr): New strong alias. * sysdeps/mach/hurd/htl/pt-attr-setstacksize.c (pthread_attr_setstacksize): Rename to __pthread_attr_setstacksize. (pthread_attr_setstacksize): New strong alias. * sysdeps/mach/hurd/htl/pt-docancel.c: Include <pthreadP.h>. (call_exit): Call __pthread_exit instead of pthread_exit. * sysdeps/mach/hurd/htl/pt-mutex-init.c: Include <pthreadP.h>. (_pthread_mutex_init): New hidden definition. * sysdeps/mach/hurd/htl/pt-sysdep.c: Include <pthreadP.h>. (_init_routine): Call __pthread_attr_init and __pthread_attr_setstack instead of pthread_attr_init and pthread_attr_setstack.
* hurd: Add hurd thread librarySamuel Thibault2018-04-021-0/+46
Contributed by Agustina Arzille <avarzille@riseup.net> Amos Jeffries <squid3@treenet.co.nz> David Michael <fedora.dm0@gmail.com> Marco Gerards <marco@gnu.org> Marcus Brinkmann <marcus@gnu.org> Neal H. Walfield <neal@gnu.org> Pino Toscano <toscano.pino@tiscali.it> Richard Braun <rbraun@sceen.net> Roland McGrath <roland@gnu.org> Samuel Thibault <samuel.thibault@ens-lyon.org> Thomas DiModica <ricinwich@yahoo.com> Thomas Schwinge <tschwinge@gnu.org> * htl: New directory. * sysdeps/htl: New directory. * sysdeps/hurd/htl: New directory. * sysdeps/i386/htl: New directory. * sysdeps/mach/htl: New directory. * sysdeps/mach/hurd/htl: New directory. * sysdeps/mach/hurd/i386/htl: New directory. * nscd/Depend, resolv/Depend, rt/Depend: Add htl dependency. * sysdeps/mach/hurd/i386/Implies: Add mach/hurd/i386/htl imply. * sysdeps/mach/hurd/i386/libpthread.abilist: New file.