glibc/sysdeps
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
..
aarch64 aarch64: update libm-test-ulps 2017-12-20 12:07:10 +00:00
alpha Update Alpha libm-test-ulps 2017-12-06 18:55:09 -02:00
arm Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
generic Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00
gnu The -Wstringop-truncation option new in GCC 8 detects common misuses 2017-11-15 17:39:59 -07:00
hppa Handle __gmon_start__ as undefined weak on hppa. 2017-12-02 14:43:28 -05:00
i386 Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00
ia64 Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00
ieee754 Avoid signed shift overflow in pow (bug 21309). 2017-12-19 18:41:01 +00:00
init_array Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
m68k Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00
mach Don't set errno in Hurd rtld's __access_noerrno 2017-12-15 18:02:56 +01:00
microblaze Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
mips mips32: fix clobbering s0 in setjmp() [BZ #22624] 2017-12-18 18:26:49 +00:00
nios2 Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
nptl nptl: Implement pthread_self in libc.so [BZ #22635] 2017-12-20 11:42:04 +01:00
posix posix: Fix generic p{read,write}v buffer allocation (BZ#22457) 2017-11-24 12:16:15 -02:00
powerpc Provide a C++ version of iseqsig (bug 22377) 2017-12-19 23:26:59 -02:00
pthread aio: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
s390 s390: Update ulps 2017-12-16 14:11:56 +05:30
sh Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
sparc Update SPARC divrem generation to match output. 2017-12-15 14:06:07 +00:00
tile Add sysdeps/ieee754/soft-fp. 2017-12-12 23:35:21 +00:00
unix nptl: Consolidate pthread_{timed,try}join{_np} 2017-12-20 11:32:54 -02:00
wordsize-32 Build divdi3 only for architecture that required it 2017-04-06 15:14:34 -03:00
wordsize-64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
x86 Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
x86_64 Revert exp reimplementation (causes test failures). 2017-12-19 18:11:37 +00:00