Samuel Thibault
8ba6ad703c
hurd: Add __pthread_spin_wait and use it
...
900778283a
("htl: make pthread_spin_lock really spin") made
pthread_spin_lock really spin and not block, but the current users of
__pthread_spin_lock were assuming that it blocks, i.e. they use it as a
lightweight mutex fitting in just one int.
__pthread_spin_wait provides that support back.
2020-02-11 00:32:44 +01:00
Samuel Thibault
e9644c20ce
htl: Make sem_wait/sem_timedwait interruptible
2020-02-10 01:03:54 +00:00
Samuel Thibault
900778283a
htl: make pthread_spin_lock really spin
...
__spin_lock would actually use gsync_wait to block, which is not what
pthread_spin_lock is about.
2020-02-09 16:54:58 +00:00
Samuel Thibault
b05de10400
C11 threads: Move implementation to sysdeps/pthread
...
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>
2020-02-09 13:56:48 +01:00
Samuel Thibault
ae793cc20d
htl: Avoid exposing unixoid functions
...
C11 threads should not expose them.
2020-01-13 01:38:33 +01:00
Joseph Myers
d614a75396
Update copyright dates with scripts/update-copyrights.
2020-01-01 00:14:33 +00:00
Paul Eggert
5a82c74822
Prefer https to http for gnu.org and fsf.org URLs
...
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-09-07 02:43:31 -07:00
Joseph Myers
04277e02d7
Update copyright dates with scripts/update-copyrights.
...
* 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.
2019-01-01 00:11:28 +00:00
Samuel Thibault
ad2b41bfd8
hurd: Bump remaining LGPL2+ htl licences to LGPL 2.1+
...
* htl/Makefile: Bump licence to LGPL 2.1+.
* htl/alloca_cutoff.c: Likewise.
* htl/cthreads-compat.c: Likewise.
* htl/lockfile.c: Likewise.
* htl/pt-alloc.c: Likewise.
* htl/pt-cancel.c: Likewise.
* htl/pt-cleanup.c: Likewise.
* htl/pt-create.c: Likewise.
* htl/pt-dealloc.c: Likewise.
* htl/pt-detach.c: Likewise.
* htl/pt-exit.c: Likewise.
* htl/pt-getattr.c: Likewise.
* htl/pt-initialize.c: Likewise.
* htl/pt-internal.h: Likewise.
* htl/pt-join.c: Likewise.
* htl/pt-self.c: Likewise.
* htl/pt-setcancelstate.c: Likewise.
* htl/pt-setcanceltype.c: Likewise.
* htl/pt-sigmask.c: Likewise.
* htl/pt-spin-inlines.c: Likewise.
* htl/pt-testcancel.c: Likewise.
* htl/pt-yield.c: Likewise.
* htl/tests/test-1.c: Likewise.
* htl/tests/test-10.c: Likewise.
* htl/tests/test-11.c: Likewise.
* htl/tests/test-12.c: Likewise.
* htl/tests/test-13.c: Likewise.
* htl/tests/test-14.c: Likewise.
* htl/tests/test-15.c: Likewise.
* htl/tests/test-16.c: Likewise.
* htl/tests/test-17.c: Likewise.
* htl/tests/test-2.c: Likewise.
* htl/tests/test-3.c: Likewise.
* htl/tests/test-4.c: Likewise.
* htl/tests/test-5.c: Likewise.
* htl/tests/test-6.c: Likewise.
* htl/tests/test-7.c: Likewise.
* htl/tests/test-8.c: Likewise.
* htl/tests/test-9.c: Likewise.
* htl/tests/test-__pthread_destroy_specific-skip.c: Likewise.
* sysdeps/htl/bits/cancelation.h: Likewise.
* sysdeps/htl/bits/pthread-np.h: Likewise.
* sysdeps/htl/bits/pthread.h: Likewise.
* sysdeps/htl/bits/pthreadtypes.h: Likewise.
* sysdeps/htl/bits/semaphore.h: Likewise.
* sysdeps/htl/bits/types/__pthread_key.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_attr.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_barrier.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_barrierattr.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_cond.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_condattr.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_mutex.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_mutexattr.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_once.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_rwlock.h: Likewise.
* sysdeps/htl/bits/types/struct___pthread_rwlockattr.h: Likewise.
* sysdeps/htl/old_pt-atfork.c: Likewise.
* sysdeps/htl/pt-atfork.c: Likewise.
* sysdeps/htl/pt-attr-destroy.c: Likewise.
* sysdeps/htl/pt-attr-getdetachstate.c: Likewise.
* sysdeps/htl/pt-attr-getguardsize.c: Likewise.
* sysdeps/htl/pt-attr-getinheritsched.c: Likewise.
* sysdeps/htl/pt-attr-getschedparam.c: Likewise.
* sysdeps/htl/pt-attr-getschedpolicy.c: Likewise.
* sysdeps/htl/pt-attr-getscope.c: Likewise.
* sysdeps/htl/pt-attr-getstack.c: Likewise.
* sysdeps/htl/pt-attr-getstackaddr.c: Likewise.
* sysdeps/htl/pt-attr-getstacksize.c: Likewise.
* sysdeps/htl/pt-attr-init.c: Likewise.
* sysdeps/htl/pt-attr-setdetachstate.c: Likewise.
* sysdeps/htl/pt-attr-setguardsize.c: Likewise.
* sysdeps/htl/pt-attr-setinheritsched.c: Likewise.
* sysdeps/htl/pt-attr-setschedparam.c: Likewise.
* sysdeps/htl/pt-attr-setschedpolicy.c: Likewise.
* sysdeps/htl/pt-attr-setscope.c: Likewise.
* sysdeps/htl/pt-attr-setstack.c: Likewise.
* sysdeps/htl/pt-attr-setstackaddr.c: Likewise.
* sysdeps/htl/pt-attr-setstacksize.c: Likewise.
* sysdeps/htl/pt-attr.c: Likewise.
* sysdeps/htl/pt-barrier-destroy.c: Likewise.
* sysdeps/htl/pt-barrier-init.c: Likewise.
* sysdeps/htl/pt-barrier-wait.c: Likewise.
* sysdeps/htl/pt-barrier.c: Likewise.
* sysdeps/htl/pt-barrierattr-destroy.c: Likewise.
* sysdeps/htl/pt-barrierattr-getpshared.c: Likewise.
* sysdeps/htl/pt-barrierattr-init.c: Likewise.
* sysdeps/htl/pt-barrierattr-setpshared.c: Likewise.
* sysdeps/htl/pt-cond-brdcast.c: Likewise.
* sysdeps/htl/pt-cond-destroy.c: Likewise.
* sysdeps/htl/pt-cond-init.c: Likewise.
* sysdeps/htl/pt-cond-signal.c: Likewise.
* sysdeps/htl/pt-cond-timedwait.c: Likewise.
* sysdeps/htl/pt-cond-wait.c: Likewise.
* sysdeps/htl/pt-cond.c: Likewise.
* sysdeps/htl/pt-condattr-destroy.c: Likewise.
* sysdeps/htl/pt-condattr-getclock.c: Likewise.
* sysdeps/htl/pt-condattr-getpshared.c: Likewise.
* sysdeps/htl/pt-condattr-init.c: Likewise.
* sysdeps/htl/pt-condattr-setclock.c: Likewise.
* sysdeps/htl/pt-condattr-setpshared.c: Likewise.
* sysdeps/htl/pt-destroy-specific.c: Likewise.
* sysdeps/htl/pt-equal.c: Likewise.
* sysdeps/htl/pt-getconcurrency.c: Likewise.
* sysdeps/htl/pt-getcpuclockid.c: Likewise.
* sysdeps/htl/pt-getschedparam.c: Likewise.
* sysdeps/htl/pt-getspecific.c: Likewise.
* sysdeps/htl/pt-init-specific.c: Likewise.
* sysdeps/htl/pt-key-create.c: Likewise.
* sysdeps/htl/pt-key-delete.c: Likewise.
* sysdeps/htl/pt-key.h: Likewise.
* sysdeps/htl/pt-mutex-destroy.c: Likewise.
* sysdeps/htl/pt-mutex-getprioceiling.c: Likewise.
* sysdeps/htl/pt-mutex-init.c: Likewise.
* sysdeps/htl/pt-mutex-lock.c: Likewise.
* sysdeps/htl/pt-mutex-setprioceiling.c: Likewise.
* sysdeps/htl/pt-mutex-timedlock.c: Likewise.
* sysdeps/htl/pt-mutex-trylock.c: Likewise.
* sysdeps/htl/pt-mutex-unlock.c: Likewise.
* sysdeps/htl/pt-mutexattr-destroy.c: Likewise.
* sysdeps/htl/pt-mutexattr-getprioceiling.c: Likewise.
* sysdeps/htl/pt-mutexattr-getprotocol.c: Likewise.
* sysdeps/htl/pt-mutexattr-getpshared.c: Likewise.
* sysdeps/htl/pt-mutexattr-gettype.c: Likewise.
* sysdeps/htl/pt-mutexattr-init.c: Likewise.
* sysdeps/htl/pt-mutexattr-setprioceiling.c: Likewise.
* sysdeps/htl/pt-mutexattr-setprotocol.c: Likewise.
* sysdeps/htl/pt-mutexattr-setpshared.c: Likewise.
* sysdeps/htl/pt-mutexattr-settype.c: Likewise.
* sysdeps/htl/pt-mutexattr.c: Likewise.
* sysdeps/htl/pt-once.c: Likewise.
* sysdeps/htl/pt-rwlock-attr.c: Likewise.
* sysdeps/htl/pt-rwlock-destroy.c: Likewise.
* sysdeps/htl/pt-rwlock-init.c: Likewise.
* sysdeps/htl/pt-rwlock-rdlock.c: Likewise.
* sysdeps/htl/pt-rwlock-timedrdlock.c: Likewise.
* sysdeps/htl/pt-rwlock-timedwrlock.c: Likewise.
* sysdeps/htl/pt-rwlock-tryrdlock.c: Likewise.
* sysdeps/htl/pt-rwlock-trywrlock.c: Likewise.
* sysdeps/htl/pt-rwlock-unlock.c: Likewise.
* sysdeps/htl/pt-rwlock-wrlock.c: Likewise.
* sysdeps/htl/pt-rwlockattr-destroy.c: Likewise.
* sysdeps/htl/pt-rwlockattr-getpshared.c: Likewise.
* sysdeps/htl/pt-rwlockattr-init.c: Likewise.
* sysdeps/htl/pt-rwlockattr-setpshared.c: Likewise.
* sysdeps/htl/pt-setconcurrency.c: Likewise.
* sysdeps/htl/pt-setschedparam.c: Likewise.
* sysdeps/htl/pt-setschedprio.c: Likewise.
* sysdeps/htl/pt-setspecific.c: Likewise.
* sysdeps/htl/pt-spin.c: Likewise.
* sysdeps/htl/pt-startup.c: Likewise.
* sysdeps/htl/pthread.h: Likewise.
* sysdeps/htl/sem-close.c: Likewise.
* sysdeps/htl/sem-destroy.c: Likewise.
* sysdeps/htl/sem-getvalue.c: Likewise.
* sysdeps/htl/sem-init.c: Likewise.
* sysdeps/htl/sem-open.c: Likewise.
* sysdeps/htl/sem-post.c: Likewise.
* sysdeps/htl/sem-timedwait.c: Likewise.
* sysdeps/htl/sem-trywait.c: Likewise.
* sysdeps/htl/sem-unlink.c: Likewise.
* sysdeps/htl/sem-wait.c: Likewise.
* sysdeps/hurd/htl/pt-kill.c: Likewise.
* sysdeps/i386/htl/pt-machdep.h: Likewise.
* sysdeps/mach/htl/pt-block.c: Likewise.
* sysdeps/mach/htl/pt-spin.c: Likewise.
* sysdeps/mach/htl/pt-stack-alloc.c: Likewise.
* sysdeps/mach/htl/pt-thread-alloc.c: Likewise.
* sysdeps/mach/htl/pt-thread-start.c: Likewise.
* sysdeps/mach/htl/pt-thread-terminate.c: Likewise.
* sysdeps/mach/htl/pt-timedblock.c: Likewise.
* sysdeps/mach/htl/pt-wakeup.c: Likewise.
* sysdeps/mach/hurd/htl/bits/pthread-np.h: Likewise.
* sysdeps/mach/hurd/htl/bits/types/struct___pthread_mutex.h: Likewise.
* sysdeps/mach/hurd/htl/pt-attr-setstackaddr.c: Likewise.
* sysdeps/mach/hurd/htl/pt-attr-setstacksize.c: Likewise.
* sysdeps/mach/hurd/htl/pt-docancel.c: Likewise.
* sysdeps/mach/hurd/htl/pt-hurd-cond-timedwait.c: Likewise.
* sysdeps/mach/hurd/htl/pt-hurd-cond-wait.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-consistent.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-destroy.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-getprioceiling.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-init.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-lock.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-setprioceiling.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-timedlock.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-transfer-np.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-trylock.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex-unlock.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutex.h: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-destroy.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-getprioceiling.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-getprotocol.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-getpshared.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-getrobust.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-gettype.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-init.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-setprioceiling.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-setprotocol.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-setpshared.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-setrobust.c: Likewise.
* sysdeps/mach/hurd/htl/pt-mutexattr-settype.c: Likewise.
* sysdeps/mach/hurd/htl/pt-sigstate-destroy.c: Likewise.
* sysdeps/mach/hurd/htl/pt-sigstate-init.c: Likewise.
* sysdeps/mach/hurd/htl/pt-sigstate.c: Likewise.
* sysdeps/mach/hurd/htl/pt-sysdep.c: Likewise.
* sysdeps/mach/hurd/htl/pt-sysdep.h: Likewise.
* sysdeps/mach/hurd/i386/htl/pt-machdep.c: Likewise.
* sysdeps/mach/hurd/i386/htl/pt-setup.c: Likewise.
2018-04-02 16:37:36 +02:00
Samuel Thibault
33574c17ee
hurd: Add hurd thread library
...
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.
2018-04-02 01:44:14 +02:00