Don't use POSIX semaphores if a MONOTONIC clock is available
POSIX semaphores use CLOCK_REALTIME, but our semaphore_t abstraction expects CLOCK_MONOTONIC based times. Use the mutex/condvar based fallback if time_monotonic() actuall returns monotonic times.
This commit is contained in:
@@ -15,6 +15,14 @@
|
|||||||
|
|
||||||
#include <library.h>
|
#include <library.h>
|
||||||
|
|
||||||
|
#if defined(HAVE_CLOCK_GETTIME) && \
|
||||||
|
(defined(HAVE_CONDATTR_CLOCK_MONOTONIC) || \
|
||||||
|
defined(HAVE_PTHREAD_COND_TIMEDWAIT_MONOTONIC))
|
||||||
|
/* if we use MONOTONIC times, we can't use POSIX_SEMAPHORES since they use
|
||||||
|
* times based on CLOCK_REALTIME */
|
||||||
|
#undef HAVE_SEM_TIMEDWAIT
|
||||||
|
#endif /* HAVE_CLOCK_GETTIME && ... */
|
||||||
|
|
||||||
#ifdef HAVE_SEM_TIMEDWAIT
|
#ifdef HAVE_SEM_TIMEDWAIT
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
#else /* !HAVE_SEM_TIMEDWAIT */
|
#else /* !HAVE_SEM_TIMEDWAIT */
|
||||||
|
|||||||
Reference in New Issue
Block a user