summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/pulsecore/rtclock.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/pulsecore/rtclock.c b/src/pulsecore/rtclock.c
index cec7124f..07d776e4 100644
--- a/src/pulsecore/rtclock.c
+++ b/src/pulsecore/rtclock.c
@@ -44,23 +44,20 @@ pa_usec_t pa_rtclock_age(const struct timeval *tv) {
struct timeval *pa_rtclock_get(struct timeval *tv) {
#ifdef HAVE_CLOCK_GETTIME
- static int no_monotonic = 0;
struct timespec ts;
- /* No locking or atomic ops for no_monotonic here */
-
- if (!no_monotonic) {
#ifdef CLOCK_MONOTONIC
- if (clock_gettime(CLOCK_MONOTONIC, &ts) >= 0)
- goto out;
-#endif
+ /* No locking or atomic ops for no_monotonic here */
+ static pa_bool_t no_monotonic = FALSE;
- no_monotonic = 1;
- }
+ if (!no_monotonic)
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) < 0)
+ no_monotonic = TRUE;
- pa_assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0);
+ if (no_monotonic)
+#endif
+ pa_assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0);
-out:
pa_assert(tv);
tv->tv_sec = ts.tv_sec;