This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[glibc] Deleted branch azanella/master-posix_clock


The branch 'azanella/master-posix_clock' was deleted.
It previously pointed to:

 d523cd0... nptl: Remove futex_supports_exact_relative_timeouts

Diff:

!!! WARNING: THE FOLLOWING COMMITS ARE NO LONGER ACCESSIBLE (LOST):
-------------------------------------------------------------------

  d523cd0... nptl: Remove futex_supports_exact_relative_timeouts
  8363dcb... Update NEWS for new _clockwait and _clocklock functions
  8a560d5... nptl: Add POSIX-proposed pthread_mutex_clocklock
  a4a66ac... nptl: Rename lll_timedlock to lll_clocklock and add clockid
  973d511... nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthre
  126a145... nptl: pthread_rwlock: Move timeout validation into _full fu
  24b44ea... nptl: Add POSIX-proposed pthread_cond_clockwait
  148d38b... nptl: Add POSIX-proposed sem_clockwait
  f9c6d0f... nptl: Add clockid parameter to futex timed wait calls

commit d523cd0248e578e7fb2c888861fd53af7f04e460
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 20:18:00 2019 +0000

    nptl: Remove futex_supports_exact_relative_timeouts
    
    The only implementation of futex_supports_exact_relative_timeouts always
    returns true. Let's remove it and all its callers.
    
    	* nptl/pthread_cond_wait.c: (__pthread_cond_clockwait): Remove code
    	that is only useful if futex_supports_exact_relative_timeouts ()
    	returns false.
    	* nptl/pthread_condattr_setclock.c: (pthread_condattr_setclock):
    	Likewise.
    	* sysdeps/nptl/futex-internal.h: Remove comment about relative
    	timeouts potentially being imprecise since it's no longer true.
    	Remove declaration of futex_supports_exact_relative_timeouts.
    	* sysdeps/unix/sysv/linux/futex-internal.h: Remove implementation
    	of futex_supports_exact_relative_timeouts.

commit 8363dcba308b11ed86016018ffc7d370fe5b3ddd
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:51:03 2019 +0000

    Update NEWS for new _clockwait and _clocklock functions
    
    	* NEWS: Mention recently-added pthread_cond_clockwait,
    	pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and
    	sem_clockwait functions.

commit 8a560d50bf9b52fd719828d9a578f8f3df5577d9
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 19:48:14 2019 +0000

    nptl: Add POSIX-proposed pthread_mutex_clocklock
    
    Add POSIX-proposed pthread_mutex_clocklock function that works like
    pthread_mutex_timedlock but takes a clockid parameter to measure the
    abstime parameter against.
    
    	* sysdeps/nptl/pthread.h: Add pthread_mutex_clocklock.
    	* nptl/DESIGN-systemtap-probes.txt: Likewise.
    	* nptl/pthread_mutex_timedlock.c
    	(__pthread_mutex_clocklock_common): Rename from
    	__pthread_mutex_timedlock and add clockid parameter. Pass this
    	parameter to lll_clocklock and lll_clocklock_elision in place of
    	CLOCK_REALTIME. (__pthread_mutex_clocklock): New function to add
    	LIBC_PROBE and validate clockid parameter before calling
    	__pthread_mutex_clocklock_common. (__pthread_mutex_timedlock): New
    	implementation to add LIBC_PROBE and calls
    	__pthread_mutex_clocklock_common passing CLOCK_REALTIME as the
    	clockid.
    	* nptl/Makefile: Add tst-mutex11.c.
    	* nptl/tst-abstime.c (th): Add tests for pthread_mutex_clocklock.
    	* nptl/tst-mutex11.c: New tests for passing invalid and unsupported
    	clockid parameters to pthread_mutex_clocklock.
    	* nptl/tst-mutex5.c (do_test_clock): Rename from do_test and take
    	clockid parameter to indicate which clock to be used. Call
    	pthread_mutex_timedlock or pthread_mutex_clocklock as appropriate.
    	(do_test): Call do_test_clock to separately test
    	pthread_mutex_timedlock, pthread_mutex_clocklock(CLOCK_REALTIME)
    	and pthread_mutex_clocklock(CLOCK_MONOTONIC).
    	* nptl/tst-mutex9.c: Likewise.
    	* nptl/Versions (GLIBC_2.30): Add pthread_mutex_clocklock.
    	* 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.

commit a4a66acf2e3a01a6e9bfce9b6673f1e13bfda5fe
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:08:25 2019 +0000

    nptl: Rename lll_timedlock to lll_clocklock and add clockid parameter
    
    Rename lll_timedlock to lll_clocklock and add clockid
    parameter to indicate the clock that the abstime parameter should
    be measured against in preparation for adding
    pthread_mutex_clocklock.
    
    The name change mirrors the naming for the exposed pthread functions:
    
     timed => absolute timeout measured against CLOCK_REALTIME (or clock
              specified by attribute in the case of pthread_cond_timedwait.)
    
     clock => absolute timeout measured against clock specified in preceding
              parameter.
    
    	* sysdeps/nptl/lowlevellock.h (lll_clocklock): Rename from
    	lll_timedlock and add clockid parameter. (__lll_clocklock): Rename
    	from __lll_timedlock and add clockid parameter.
    	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_clocklock):
    	Likewise.
    	* nptl/lll_timedlock_wait.c (__lll_clocklock_wait): Rename from
    	__lll_timedlock_wait and add clockid parameter. Use __clock_gettime
    	rather than __gettimeofday so that clockid can be used. This means
    	that conversion from struct timeval is no longer required.
    	* sysdeps/sparc/sparc32/lowlevellock.c (lll_clocklock_wait):
    	Likewise.
    	* sysdeps/sparc/sparc32/lll_timedlock_wait.c: Update comment to
    	refer to __lll_clocklock_wait rather than __lll_timedlock_wait.
    	* nptl/pthread_mutex_timedlock.c (lll_clocklock_elision): Rename
    	from lll_timedlock_elision, add clockid parameter and use
    	meaningful names for other parameters. (__pthread_mutex_timedlock):
    	Pass CLOCK_REALTIME where necessary to lll_clocklock and
    	lll_clocklock_elision.
    	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
    	(lll_clocklock_elision): Rename from lll_timedlock_elision and add
    	clockid parameter. (__lll_clocklock_elision): Rename from
    	__lll_timedlock_elision and add clockid parameter.
    	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/x86/lowlevellock.h: Likewise.
    	* sysdeps/unix/sysv/linux/powerpc/elision-timed.c
    	(__lll_lock_elision): Call __lll_clocklock_elision rather than
    	__lll_timedlock_elision. (EXTRAARG): Add clockid parameter.
    	(LLL_LOCK): Likewise.
    	* sysdeps/unix/sysv/linux/s390/elision-timed.c: Likewise.
    	* sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.

commit 973d51109b4d1e90537e74b86b3a2b6bb1cf3988
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 13:05:27 2019 +0000

    nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock
    
    Add:
     int pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    and:
     int pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock,
                                     clockid_t clockid,
                                     const struct timespec *abstime)
    
    which behave like pthread_rwlock_timedrdlock and
    pthread_rwlock_timedwrlock respectively, except they always measure
    abstime against the supplied clockid. The functions currently support
    CLOCK_REALTIME and CLOCK_MONOTONIC and return EINVAL if any other
    clock is specified.
    
    	* sysdeps/nptl/pthread.h: Add pthread_rwlock_clockrdlock and
    	pthread_wrlock_clockwrlock.
    	* nptl/Makefile: Build pthread_rwlock_clockrdlock.c and
    	pthread_rwlock_clockwrlock.c.
    	* nptl/pthread_rwlock_clockrdlock.c: Implement
    	pthread_rwlock_clockrdlock.
    	* nptl/pthread_rwlock_clockwrlock.c: Implement
    	pthread_rwlock_clockwrlock.
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full): Add
    	clockid parameter and verify that it indicates a supported clock on
    	entry so that we fail even if it doesn't end up being used. Pass
    	that clock on to futex_abstimed_wait when necessary.
    	(__pthread_rwlock_wrlock_full): Likewise.
    	* nptl/pthread_rwlock_rdlock.c: (__pthread_rwlock_rdlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_rdlock_full even though it won't
    	be used because there's no timeout.
    	* nptl/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Pass
    	CLOCK_REALTIME to __pthread_rwlock_wrlock_full even though it won't
    	be used because there is no timeout.
    	* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_rdlock_full since abstime
    	uses that clock.
    	* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
    	Pass CLOCK_REALTIME to __pthread_rwlock_wrlock_full since abstime
    	uses that clock.
    	* sysdeps/mach/hurd/i386/libpthread.abilist (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-abstime.c (th): Add pthread_rwlock_clockrdlock and
    	pthread_rwlock_clockwrlock timeout tests to match the existing
    	pthread_rwlock_timedrdloock and pthread_rwlock_timedwrlock tests.
    	* nptl/tst-rwlock14.c (do_test): Likewise.

commit 126a1454d2a18003e1ac718b5aac84138dd2ca5c
Author: Mike Crowe <mac@mcrowe.com>
Date:   Mon Jun 24 12:39:02 2019 +0000

    nptl: pthread_rwlock: Move timeout validation into _full functions
    
    As recommended by the comments in the implementations of
    pthread_rwlock_timedrdlock and pthread_rwlock_timedwrlock, let's move
    the timeout validity checks into the corresponding pthread_rwlock_rdlock_full
    and pthread_rwlock_wrlock_full functions. Since these functions may be
    called with abstime == NULL, an extra check for that is necessary too.
    
    	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full):
    	Check validity of abstime parameter.
    	(__pthread_rwlock_rwlock_full): Likewise.
    	* nptl/pthread_rwlock_timedrdlock.c
    	* (pthread_rwlock_timedrdlock):
    	Remove check for validity of abstime parameter.
    	* nptl/pthread_rwlock_timedwrlock.c
    	* (pthread_rwlock_timedwrlock):
    	Likewise.

commit 24b44eaff8cb10b2737470007c3fbe6c5b58685d
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 17:36:56 2019 +0000

    nptl: Add POSIX-proposed pthread_cond_clockwait
    
    Add:
    
     int pthread_cond_clockwait (pthread_cond_t *cond,
                                 pthread_mutex_t *mutex,
                                 clockid_t clockid,
                                 const struct timespec *abstime)
    
    which behaves just like pthread_cond_timedwait except it always measures
    abstime against the supplied clockid. Currently supports CLOCK_REALTIME
    and
    CLOCK_MONOTONIC and returns EINVAL if any other clock is specified.
    
    Includes feedback from many others. This function was originally
    proposed[1] as pthread_cond_timedwaitonclock_np, but The Austin Group
    preferred the new name.
    
    	* nptl/Makefile: Add tst-cond26 and tst-cond27
    	* nptl/Versions (GLIBC_2.30): Add pthread_cond_clockwait
    	* sysdeps/nptl/pthread.h: Likewise
    	* nptl/forward.c: Add __pthread_cond_clockwait
    	* nptl/forward.c: Likewise
    	* nptl/pthreadP.h: Likewise
    	* sysdeps/nptl/pthread-functions.h: Likewise
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Add
    	clockid parameter and comment describing why we don't need to
    	check
    	its value. Use that value when calling
    	futex_abstimed_wait_cancelable rather than reading the clock
    	from
    	the flags. (__pthread_cond_wait): Pass unused clockid parameter.
    	(__pthread_cond_timedwait): Read clock from flags and pass it to
    	__pthread_cond_wait_common. (__pthread_cond_clockwait): Add new
    	function with weak alias from pthread_cond_clockwait.
    	* sysdeps/mach/hurd/i386/libpthread.abilist (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-cond11.c (run_test): Support testing
    	pthread_cond_clockwait too by using a special magic
    	CLOCK_USE_ATTR_CLOCK value to determine whether to call
    	pthread_cond_timedwait or pthread_cond_clockwait. (do_test):
    	Pass
    	CLOCK_USE_ATTR_CLOCK for existing tests, and add new tests using
    	all combinations of CLOCK_MONOTONIC and CLOCK_REALTIME.
    	* ntpl/tst-cond26.c: New test for passing unsupported and
    	* invalid
    	clocks to pthread_cond_clockwait.
    	* nptl/tst-cond27.c: Add test similar to tst-cond5.c, but using
    	struct timespec and pthread_cond_clockwait.
    	* manual/threads.texi: Document pthread_cond_clockwait. The
    	* comment
    	was provided by Carlos O'Donell.
    
    [1] https://sourceware.org/ml/libc-alpha/2015-07/msg00193.html

commit 148d38b79926ad1cca11471ad65564b8eabf08ba
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 15:57:41 2019 +0000

    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.

commit f9c6d0f56ede9e6f029700029cfc5efc81642438
Author: Mike Crowe <mac@mcrowe.com>
Date:   Fri Jun 21 14:53:40 2019 +0000

    nptl: Add clockid parameter to futex timed wait calls
    
    In preparation for adding POSIX clockwait variants of timedwait functions,
    add a clockid_t parameter to futex_abstimed_wait functions and pass
    CLOCK_REALTIME from all callers for the time being.
    
    Replace lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset
    which takes a clockid_t parameter rather than the magic clockbit.
    
    	* sysdeps/nptl/lowlevellock-futex.h,
    	sysdeps/unix/sysv/linux/lowlevellock-futex.h: Replace
    	lll_futex_timed_wait_bitset with lll_futex_clock_wait_bitset that
    	takes a clockid rather than a special clockbit.
    	* sysdeps/nptl/lowlevellock-futex.h: Add
    	lll_futex_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling lll_futex_clock_wait_bitset.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h
    	(futex_abstimed_wait, futex_abstimed_wait_cancelable): Add
    	clockid_t parameter to indicate which clock the absolute time
    	passed should be measured against. Pass that clockid onto
    	lll_futex_clock_wait_bitset. Add invalid clock as reason for
    	returning -EINVAL.
    	* sysdeps/nptl/futex-internal.h,
    	sysdeps/unix/sysv/linux/futex-internal.h: Introduce
    	futex_abstimed_supported_clockid so that client functions can check
    	whether their clockid parameter is valid even if they don't
    	ultimately end up calling futex_abstimed_wait.
    	* nptl/pthread_cond_wait.c (__pthread_cond_wait_common): Remove
    	code to calculate relative timeout for
    	__PTHREAD_COND_CLOCK_MONOTONIC_MASK and just pass CLOCK_MONOTONIC
    	or CLOCK_REALTIME as required to futex_abstimed_wait_cancelable.
    	* nptl/pthread_rwlock_common (__pthread_rwlock_rdlock_full)
    	(__pthread_wrlock_full), nptl/sem_waitcommon (do_futex_wait): Pass
    	additional CLOCK_REALTIME to futex_abstimed_wait_cancelable.
    	* nptl/pthread_mutex_timedlock.c (__pthread_mutex_timedlock):
    	Switch to lll_futex_clock_wait_bitset and pass CLOCK_REALTIME


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]