glibc/nptl
Adhemerval Zanella 4735850f7a nptl: Consolidate pthread_{timed,try}join{_np}
This patch consolidates the pthread_join and gnu extensions to avoid
code duplication.  The function pthread_join, pthread_tryjoin_np, and
pthread_timedjoin_np are now based on pthread_timedjoin_ex.

It also fixes some inconsistencies on ESRCH, EINVAL, EDEADLK handling
(where each implementation differs from each other) and also on
clenup handler (which now always use a CAS).

Checked on i686-linux-gnu and x86_64-linux-gnu.

	* nptl/pthreadP.h (__pthread_timedjoin_np): Define.
	* nptl/pthread_join.c (pthread_join): Use __pthread_timedjoin_np.
	* nptl/pthread_tryjoin.c (pthread_tryjoin): Likewise.
	* nptl/pthread_timedjoin.c (cleanup): Use CAS on argument setting.
	(pthread_timedjoin_np): Define internal symbol and common code from
	pthread_join.
	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_timedwait_tid):
	Remove superflous checks.
	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_timedwait_tid):
	Likewise.

Signed-off-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
2017-12-20 11:32:54 -02:00
..
alloca_cutoff.c
allocatestack.c nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION} 2017-11-07 09:48:41 -02:00
cancellation.c nptl: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
cleanup_compat.c
cleanup_defer_compat.c
cleanup_defer.c
cleanup_routine.c
cleanup.c
compat-pthread_self.c nptl: Implement pthread_self in libc.so [BZ #22635] 2017-12-20 11:42:04 +01:00
cond-perf.c
createthread.c
default-sched.h
descr.h Linux/x86: Update cancel_jmp_buf to match __jmp_buf_tag [BZ #22563] 2017-12-19 02:44:04 -08:00
DESIGN-systemtap-probes.txt
eintr.c
elision-conf.h
errno-loc.c
events.c
forward.c nptl: Implement pthread_self in libc.so [BZ #22635] 2017-12-20 11:42:04 +01:00
herrno.c
libc_multiple_threads.c
libc_pthread_init.c nptl: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
libc-cancellation.c
libc-cleanup.c
libc-lowlevellock.c
lll_timedlock_wait.c
lll_timedwait_tid.c
lowlevellock.c
Makefile nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
nptl_lock_constants.pysym
nptl-init.c nptl: Implement pthread_self in libc.so [BZ #22635] 2017-12-20 11:42:04 +01:00
nptl-printers.py
old_pthread_atfork.c
old_pthread_cond_broadcast.c
old_pthread_cond_destroy.c
old_pthread_cond_init.c
old_pthread_cond_signal.c
old_pthread_cond_timedwait.c
old_pthread_cond_wait.c
perf.c
pt-allocrtsig.c
pt-cleanup.c
pt-crti.S
pt-fork.c
pt-interp.c
pt-longjmp.c
pt-raise.c
pt-system.c
pt-vfork.c
pthread_atfork.c Mark __dso_handle as hidden [BZ #18822] 2017-09-26 16:53:44 -07:00
pthread_attr_destroy.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getaffinity.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getdetachstate.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getguardsize.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getinheritsched.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getschedparam.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getschedpolicy.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getscope.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getstack.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getstackaddr.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_getstacksize.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setaffinity.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setdetachstate.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setguardsize.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setinheritsched.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setschedparam.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setschedpolicy.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setscope.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setstack.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setstackaddr.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_attr_setstacksize.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_barrier_destroy.c
pthread_barrier_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_barrier_wait.c
pthread_barrierattr_destroy.c
pthread_barrierattr_getpshared.c
pthread_barrierattr_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_barrierattr_setpshared.c
pthread_cancel.c
pthread_clock_gettime.c
pthread_clock_settime.c
pthread_cond_broadcast.c
pthread_cond_common.c
pthread_cond_destroy.c
pthread_cond_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_cond_signal.c
pthread_cond_wait.c
pthread_condattr_destroy.c
pthread_condattr_getclock.c
pthread_condattr_getpshared.c
pthread_condattr_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_condattr_setclock.c
pthread_condattr_setpshared.c
pthread_create.c nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION} 2017-11-07 09:48:41 -02:00
pthread_detach.c
pthread_equal.c
pthread_exit.c
pthread_getaffinity.c
pthread_getattr_default_np.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_getattr_np.c
pthread_getconcurrency.c
pthread_getcpuclockid.c
pthread_getname.c
pthread_getschedparam.c
pthread_getspecific.c
pthread_join_common.c nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
pthread_join.c nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
pthread_key_create.c
pthread_key_delete.c
pthread_kill_other_threads.c
pthread_kill.c
pthread_mutex_cond_lock.c nptl: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
pthread_mutex_consistent.c
pthread_mutex_destroy.c
pthread_mutex_getprioceiling.c
pthread_mutex_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_mutex_lock.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_mutex_setprioceiling.c
pthread_mutex_timedlock.c Consolidate non cancellable nanosleep call 2017-08-22 14:25:08 -03:00
pthread_mutex_trylock.c
pthread_mutex_unlock.c nptl: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
pthread_mutexattr_destroy.c
pthread_mutexattr_getprioceiling.c
pthread_mutexattr_getprotocol.c
pthread_mutexattr_getpshared.c
pthread_mutexattr_getrobust.c
pthread_mutexattr_gettype.c
pthread_mutexattr_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_mutexattr_setprioceiling.c
pthread_mutexattr_setprotocol.c
pthread_mutexattr_setpshared.c
pthread_mutexattr_setrobust.c
pthread_mutexattr_settype.c
pthread_once.c
pthread_rwlock_common.c
pthread_rwlock_destroy.c
pthread_rwlock_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_rwlock_rdlock.c
pthread_rwlock_timedrdlock.c
pthread_rwlock_timedwrlock.c
pthread_rwlock_tryrdlock.c
pthread_rwlock_trywrlock.c
pthread_rwlock_unlock.c
pthread_rwlock_wrlock.c
pthread_rwlockattr_destroy.c
pthread_rwlockattr_getkind_np.c
pthread_rwlockattr_getpshared.c
pthread_rwlockattr_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_rwlockattr_setkind_np.c
pthread_rwlockattr_setpshared.c
pthread_self.c nptl: Implement pthread_self in libc.so [BZ #22635] 2017-12-20 11:42:04 +01:00
pthread_setaffinity.c
pthread_setattr_default_np.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
pthread_setcancelstate.c
pthread_setcanceltype.c
pthread_setconcurrency.c
pthread_setegid.c
pthread_seteuid.c
pthread_setgid.c
pthread_setname.c
pthread_setregid.c
pthread_setresgid.c
pthread_setresuid.c
pthread_setreuid.c
pthread_setschedparam.c
pthread_setschedprio.c
pthread_setspecific.c
pthread_setuid.c
pthread_sigmask.c
pthread_sigqueue.c
pthread_spin_destroy.c
pthread_spin_init.c
pthread_spin_lock.c
pthread_spin_trylock.c
pthread_spin_unlock.c
pthread_testcancel.c
pthread_timedjoin.c nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
pthread_tryjoin.c nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
pthread_yield.c
pthread-errnos.sym
pthread-pi-defines.sym
pthread-pids.h
pthreadP.h nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
register-atfork.c
res.c
sem_close.c
sem_destroy.c
sem_getvalue.c
sem_init.c nptl: Change tst-typesizes to _Static_assert 2017-11-07 09:48:37 -02:00
sem_open.c
sem_post.c
sem_timedwait.c
sem_unlink.c
sem_wait.c
sem_waitcommon.c
semaphoreP.h
shlib-versions
sigaction.c
smp.h
sockperf.c
stack-aliasing.h
test-cond-printers.c
test-cond-printers.py
test-condattr-printers.c
test-condattr-printers.py
test-mutex-printers.c
test-mutex-printers.py
test-mutexattr-printers.c
test-mutexattr-printers.py
test-rwlock-printers.c
test-rwlock-printers.py
test-rwlockattr-printers.c
test-rwlockattr-printers.py
TODO
TODO-kernel
TODO-testing
tpp.c
tst-_res1.c
tst-_res1mod1.c
tst-_res1mod2.c
tst-abstime.c
tst-align3.c
tst-align.c
tst-atfork1.c
tst-atfork2.c
tst-atfork2mod.c Mark __dso_handle as hidden [BZ #18822] 2017-09-26 16:53:44 -07:00
tst-attr1.c
tst-attr2.c
tst-attr3.c Disable -Wrestrict for two nptl/tst-attr3.c tests. 2017-12-18 22:55:28 +00:00
tst-backtrace1.c
tst-bad-schedattr.c
tst-barrier1.c
tst-barrier2.c
tst-barrier3.c
tst-barrier4.c
tst-barrier5.c
tst-basic1.c
tst-basic2.c
tst-basic3.c
tst-basic4.c
tst-basic5.c
tst-basic6.c
tst-basic7.c
tst-cancel1.c
tst-cancel2.c
tst-cancel3.c
tst-cancel4_1.c
tst-cancel4_2.c
tst-cancel4-common.c
tst-cancel4-common.h
tst-cancel4.c
tst-cancel5.c
tst-cancel6.c
tst-cancel7.c
tst-cancel8.c
tst-cancel9.c
tst-cancel10.c
tst-cancel11.c
tst-cancel12.c
tst-cancel13.c
tst-cancel14.c
tst-cancel15.c
tst-cancel16.c
tst-cancel17.c
tst-cancel18.c
tst-cancel19.c
tst-cancel20.c
tst-cancel21-static.c
tst-cancel21.c
tst-cancel22.c
tst-cancel23.c
tst-cancel24-static.cc
tst-cancel24.cc
tst-cancel25.c
tst-cancel26.c
tst-cancel27.c
tst-cancel-self-cancelstate.c
tst-cancel-self-canceltype.c
tst-cancel-self-cleanup.c
tst-cancel-self-testcancel.c
tst-cancel-self.c
tst-cancel-wrappers.sh
tst-cancelx1.c
tst-cancelx2.c
tst-cancelx3.c
tst-cancelx4.c
tst-cancelx5.c
tst-cancelx6.c
tst-cancelx7.c
tst-cancelx8.c
tst-cancelx9.c
tst-cancelx10.c
tst-cancelx11.c
tst-cancelx12.c
tst-cancelx13.c
tst-cancelx14.c
tst-cancelx15.c
tst-cancelx16.c
tst-cancelx17.c
tst-cancelx18.c
tst-cancelx20.c
tst-cancelx21.c
tst-cleanup0.c
tst-cleanup0.expect
tst-cleanup1.c
tst-cleanup2.c
tst-cleanup3.c
tst-cleanup4.c
tst-cleanup4aux.c
tst-cleanupx0.c
tst-cleanupx0.expect
tst-cleanupx1.c
tst-cleanupx2.c
tst-cleanupx3.c
tst-cleanupx4.c
tst-cleanupx4aux.c
tst-clock1.c
tst-clock2.c
tst-compat-forwarder-mod.c
tst-compat-forwarder.c
tst-cond1.c
tst-cond2.c
tst-cond3.c
tst-cond4.c
tst-cond5.c
tst-cond6.c
tst-cond7.c
tst-cond8-static.c
tst-cond8.c
tst-cond9.c
tst-cond10.c
tst-cond11.c
tst-cond12.c
tst-cond13.c
tst-cond14.c
tst-cond15.c
tst-cond16.c Do not scale NPTL tests with available number of CPUs 2017-08-30 16:20:31 +02:00
tst-cond17.c
tst-cond18.c Do not scale NPTL tests with available number of CPUs 2017-08-30 16:20:31 +02:00
tst-cond19.c
tst-cond20.c
tst-cond21.c
tst-cond22.c
tst-cond23.c
tst-cond24.c
tst-cond25.c
tst-cond-except.c
tst-context1.c
tst-create-detached.c
tst-default-attr.c
tst-detach1.c
tst-dlsym1.c
tst-eintr1.c
tst-eintr2.c
tst-eintr3.c
tst-eintr4.c
tst-eintr5.c
tst-exec1.c
tst-exec2.c
tst-exec3.c
tst-exec4.c
tst-exec5.c
tst-execstack-mod.c
tst-execstack.c
tst-exit1.c
tst-exit2.c
tst-exit3.c
tst-fini1.c
tst-fini1mod.c
tst-flock1.c
tst-flock2.c
tst-fork1.c
tst-fork2.c
tst-fork3.c
tst-fork4.c
tst-getpid3.c
tst-initializers1-c11.c
tst-initializers1-c89.c
tst-initializers1-c99.c
tst-initializers1-gnu11.c
tst-initializers1-gnu89.c
tst-initializers1-gnu99.c
tst-initializers1.c
tst-join1.c
tst-join2.c
tst-join3.c
tst-join4.c
tst-join5.c
tst-join6.c
tst-join7.c
tst-join7mod.c
tst-key1.c
tst-key2.c
tst-key3.c
tst-key4.c
tst-kill1.c
tst-kill2.c
tst-kill3.c
tst-kill4.c
tst-kill5.c
tst-kill6.c
tst-locale1.c
tst-locale2.c
tst-memstream.c
tst-mutex1.c
tst-mutex2.c
tst-mutex3.c
tst-mutex4.c
tst-mutex5.c
tst-mutex5a.c
tst-mutex6.c
tst-mutex7.c
tst-mutex7a.c
tst-mutex7robust.c
tst-mutex8-static.c
tst-mutex8.c Add elision tunables 2017-12-05 17:48:48 -02:00
tst-mutex9.c
tst-mutex-errorcheck.c
tst-mutexpi1.c
tst-mutexpi2.c
tst-mutexpi3.c
tst-mutexpi4.c
tst-mutexpi5.c
tst-mutexpi5a.c
tst-mutexpi6.c
tst-mutexpi7.c
tst-mutexpi7a.c
tst-mutexpi8-static.c
tst-mutexpi8.c
tst-mutexpi9.c
tst-mutexpp1.c
tst-mutexpp6.c
tst-mutexpp10.c
tst-oddstacklimit.c
tst-once1.c
tst-once2.c
tst-once3.c
tst-once4.c
tst-once5.cc
tst-oncex3.c
tst-oncex4.c
tst-popen1.c
tst-pthread-attr-affinity.c
tst-pthread-getattr.c Prefer https for Sourceware links 2017-11-16 11:49:26 +05:30
tst-pthread-mutexattr.c
tst-raise1.c
tst-robust1.c
tst-robust2.c
tst-robust3.c
tst-robust4.c
tst-robust5.c
tst-robust6.c
tst-robust7.c
tst-robust8.c
tst-robust9.c
tst-robust10.c
tst-robust-fork.c
tst-robustpi1.c
tst-robustpi2.c
tst-robustpi3.c
tst-robustpi4.c
tst-robustpi5.c
tst-robustpi6.c
tst-robustpi7.c
tst-robustpi8.c
tst-robustpi9.c
tst-rwlock1.c
tst-rwlock2.c
tst-rwlock2a.c
tst-rwlock2b.c
tst-rwlock3.c
tst-rwlock4.c
tst-rwlock5.c
tst-rwlock6.c
tst-rwlock7.c
tst-rwlock8.c
tst-rwlock9.c
tst-rwlock10.c
tst-rwlock11.c
tst-rwlock12.c
tst-rwlock13.c
tst-rwlock14.c
tst-rwlock15.c
tst-rwlock16.c
tst-rwlock17.c
tst-rwlock18.c
tst-rwlock19.c
tst-rwlock20.c
tst-sched1.c
tst-sem1.c
tst-sem2.c
tst-sem3.c
tst-sem4.c
tst-sem5.c
tst-sem6.c
tst-sem7.c
tst-sem8.c
tst-sem9.c
tst-sem10.c
tst-sem11-static.c
tst-sem11.c
tst-sem12-static.c
tst-sem12.c
tst-sem13.c
tst-sem14.c
tst-sem15.c
tst-sem16.c
tst-setuid1-static.c
tst-setuid1.c
tst-setuid2.c
tst-setuid3.c
tst-signal1.c
tst-signal2.c
tst-signal3.c
tst-signal4.c
tst-signal5.c
tst-signal6.c
tst-signal7.c
tst-spin1.c
tst-spin2.c
tst-spin3.c
tst-spin4.c
tst-stack1.c
tst-stack2.c
tst-stack3.c
tst-stack4.c
tst-stack4mod.c
tst-stackguard1-static.c
tst-stackguard1.c
tst-stdio1.c
tst-stdio2.c
tst-sysconf.c
tst-thread_local1.cc
tst-tls1.c
tst-tls2.c
tst-tls3-malloc.c
tst-tls3.c
tst-tls3mod.c
tst-tls4.c
tst-tls4moda.c
tst-tls4modb.c
tst-tls5.c
tst-tls5.h
tst-tls5mod.c
tst-tls5moda.c
tst-tls5modb.c
tst-tls5modc.c
tst-tls5modd.c
tst-tls5mode.c
tst-tls5modf.c
tst-tls6.sh
tst-tpp.h
tst-tsd1.c
tst-tsd2.c
tst-tsd3.c
tst-tsd4.c
tst-tsd5.c
tst-tsd6.c
tst-umask1.c
tst-unload.c
tst-vfork1.c
tst-vfork1x.c
tst-vfork2.c
tst-vfork2x.c
unregister-atfork.c
unwind.c
unwindbuf.sym
vars.c
version.c Remove non-add-on Banner files. 2017-09-21 17:49:51 +00:00
Versions