glibc/sysdeps/pthread
Mike Crowe 6615f77978 nptl: Add POSIX-proposed sem_clockwait
Add:

 int sem_clockwait (sem_t *sem, clockid_t clock, const struct timespec
*abstime)

which behaves just like sem_timedwait, but measures abstime against the
specified clock. Currently supports CLOCK_REALTIME and CLOCK_MONOTONIC
and sets errno == EINVAL if any other clock is specified.

	* nptl/sem_waitcommon.c (do_futex_wait, __new_sem_wait_slow): Add
	clockid parameters to indicate the clock which abstime should be
	measured against.
	* nptl/sem_timedwait.c (sem_timedwait), nptl/sem_wait.c
	(__new_sem_wait): Pass CLOCK_REALTIME as clockid to
	__new_sem_wait_slow.
	* nptl/sem_clockwait.c: New file to implement sem_clockwait based
	on sem_timedwait.c.
	* nptl/Makefile: Add sem_clockwait.c source file. Add CFLAGS for
	sem_clockwait.c to match those used for sem_timedwait.c.
	* sysdeps/pthread/semaphore.h: Add sem_clockwait.
	* nptl/Versions (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* nptl/tst-sem17.c: Add new test for passing invalid clock to
	sem_clockwait.
	* nptl/tst-sem13.c, nptl/tst-sem5.c: Modify existing sem_timedwait
	tests to also test sem_clockwait.
	* manual/threads.texi: Document sem_clockwait.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2019-07-12 13:36:23 +00:00
..
bits Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_cancel.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_error.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_fsync.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_misc.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_misc.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_notify.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_read64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_read.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_suspend.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_write64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
aio_write.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
allocalim.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
flockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ftrylockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
funlockfile.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
lio_listio64.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
lio_listio.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Makeconfig Clean up definition of _LIBC_REENTRANT and _IO_MTSAFE_IO. 2012-08-17 09:35:15 -07:00
Makefile Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
posix-timer.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
semaphore.h nptl: Add POSIX-proposed sem_clockwait 2019-07-12 13:36:23 +00:00
timer_create.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
timer_delete.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
timer_getoverr.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
timer_gettime.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
timer_routines.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
timer_settime.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-timer.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Versions lio_listio should emit an event for each individual request in 2006-01-03 23:19:03 +00:00