mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 17:53:37 +08:00
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>
This commit is contained in:
parent
65dd7e9ce3
commit
1ff1373b33
11
ChangeLog
11
ChangeLog
@ -1,5 +1,16 @@
|
||||
2019-07-12 Mike Crowe <mac@mcrowe.com>
|
||||
|
||||
* 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.
|
||||
|
||||
* NEWS: Mention recently-added pthread_cond_clockwait,
|
||||
pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock and
|
||||
sem_clockwait functions.
|
||||
|
@ -674,11 +674,6 @@ __pthread_cond_clockwait (pthread_cond_t *cond, pthread_mutex_t *mutex,
|
||||
if (!futex_abstimed_supported_clockid (clockid))
|
||||
return EINVAL;
|
||||
|
||||
/* If we do not support waiting using CLOCK_MONOTONIC, return an error. */
|
||||
if (clockid == CLOCK_MONOTONIC
|
||||
&& !futex_supports_exact_relative_timeouts ())
|
||||
return EINVAL;
|
||||
|
||||
return __pthread_cond_wait_common (cond, mutex, clockid, abstime);
|
||||
}
|
||||
weak_alias (__pthread_cond_clockwait, pthread_cond_clockwait);
|
||||
|
@ -33,11 +33,6 @@ pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock_id)
|
||||
in the pthread_cond_t structure needs to be adjusted. */
|
||||
return EINVAL;
|
||||
|
||||
/* If we do not support waiting using CLOCK_MONOTONIC, return an error. */
|
||||
if (clock_id == CLOCK_MONOTONIC
|
||||
&& !futex_supports_exact_relative_timeouts())
|
||||
return ENOTSUP;
|
||||
|
||||
/* Make sure the value fits in the bits we reserved. */
|
||||
assert (clock_id < (1 << COND_CLOCK_BITS));
|
||||
|
||||
|
@ -51,8 +51,7 @@
|
||||
Both absolute and relative timeouts can be used. An absolute timeout
|
||||
expires when the given specific point in time on the specified clock
|
||||
passes, or when it already has passed. A relative timeout expires when
|
||||
the given duration of time on the CLOCK_MONOTONIC clock passes. Relative
|
||||
timeouts may be imprecise (see futex_supports_exact_relative_timeouts).
|
||||
the given duration of time on the CLOCK_MONOTONIC clock passes.
|
||||
|
||||
Due to POSIX requirements on when synchronization data structures such
|
||||
as mutexes or semaphores can be destroyed and due to the futex design
|
||||
@ -81,12 +80,6 @@
|
||||
static __always_inline int
|
||||
futex_supports_pshared (int pshared);
|
||||
|
||||
/* Returns true if relative timeouts are robust to concurrent changes to the
|
||||
system clock. If this returns false, relative timeouts can still be used
|
||||
but might be effectively longer or shorter than requested. */
|
||||
static __always_inline bool
|
||||
futex_supports_exact_relative_timeouts (void);
|
||||
|
||||
/* Atomically wrt other futex operations on the same futex, this blocks iff
|
||||
the value *FUTEX_WORD matches the expected value. This is
|
||||
semantically equivalent to:
|
||||
|
@ -46,14 +46,6 @@ futex_supports_pshared (int pshared)
|
||||
return EINVAL;
|
||||
}
|
||||
|
||||
/* The Linux kernel supports relative timeouts measured against the
|
||||
CLOCK_MONOTONIC clock. */
|
||||
static __always_inline bool
|
||||
futex_supports_exact_relative_timeouts (void)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/* See sysdeps/nptl/futex-internal.h for details. */
|
||||
static __always_inline int
|
||||
futex_wait (unsigned int *futex_word, unsigned int expected, int private)
|
||||
|
Loading…
Reference in New Issue
Block a user