public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] Deleted branch azanella/master-posix_clock
@ 2019-06-26 18:37 Adhemerval Zanella
  0 siblings, 0 replies; 2+ messages in thread
From: Adhemerval Zanella @ 2019-06-26 18:37 UTC (permalink / raw)
  To: glibc-cvs

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [glibc] Deleted branch azanella/master-posix_clock
@ 2019-07-15 11:50 Adhemerval Zanella
  0 siblings, 0 replies; 2+ messages in thread
From: Adhemerval Zanella @ 2019-07-15 11:50 UTC (permalink / raw)
  To: glibc-cvs

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

 a53662b... nptl: Remove futex_supports_exact_relative_timeouts

Diff:

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

  a53662b... nptl: Remove futex_supports_exact_relative_timeouts
  6df32fd... Update NEWS for new _clockwait and _clocklock functions
  5be4cd5... nptl: Add POSIX-proposed pthread_mutex_clocklock
  75c3aae... nptl: Rename lll_timedlock to lll_clocklock and add clockid
  97e3833... nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthre
  fd0f159... nptl: pthread_rwlock: Move timeout validation into _full fu
  9224e6c... nptl: Add POSIX-proposed pthread_cond_clockwait
  dc031e4... nptl: Add POSIX-proposed sem_clockwait
  5a830d1... nptl: Add clockid parameter to futex timed wait calls

commit a53662bcb25094bfb79507585af8972f3b6d789f
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 6df32fd016ae8d6e39fbbc3a7fa40b1b608142a3
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 5be4cd5c6c2e81cf4d7a8bd9c1ec78cd4b906bf0
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 75c3aaefcd72e75548d7d46eeefeae0c318e9322
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 97e3833081ced7b0b73837648ad79737a9c4b1f0
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/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.
    	* nptl/tst-rwlock6.c Invent verbose_printf macro, and use for
    	ancillary output throughout. (tf): Accept thread_args structure so
    	that rwlock, a clockid and function name can be passed to the
    	thread. (do_test_clock): Rename from do_test. Accept clockid
    	parameter to specify test clock. Use the magic clockid value of
    	CLOCK_USE_TIMEDLOCK to indicate that pthread_rwlock_timedrdlock and
    	pthread_rwlock_timedwrlock should be tested, otherwise pass the
    	specified clockid to pthread_rwlock_clockrdlock and
    	pthread_rwlock_clockwrlock. Use xpthread_create and xpthread_join.
    	(do_test): Call do_test_clock to test each clockid in turn.
    	* nptl/tst-rwlock7.c: Likewise.
    	* nptl/tst-rwlock9.c (writer_thread, reader_thread): Accept
    	thread_args structure so that the (now int) thread number, the
    	clockid and the function name can be passed to the thread.
    	(do_test_clock): Renamed from do_test. Pass the necessary
    	thread_args when creating the reader and writer threads. Use
    	xpthread_create and xpthread_join.
    	(do_test): Call do_test_clock to test each clockid in turn.
    	* manual/threads.texi: Add documentation for
    	pthread_rwlock_clockrdlock and pthread_rwlock_clockwrclock.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit fd0f15914edab6a2c5f780f70079965df4d00f54
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 9224e6cc464fa7df55d72c25bd2ed46e285edd50
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
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit dc031e4504dabfffe472c4e3b8fbe8ea81b28076
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.
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>

commit 5a830d13df8f2a9688bbcdf3b5a0e4e89dd91883
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
    
    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-07-15 11:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-26 18:37 [glibc] Deleted branch azanella/master-posix_clock Adhemerval Zanella
2019-07-15 11:50 Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).