Index: third_party/libevent/event.c |
diff --git a/third_party/libevent/event.c b/third_party/libevent/event.c |
index 125335207d518eb63b6ef0e60453221041d90b92..8b6cae507ce72af195f9a877498fbed992665c9e 100644 |
--- a/third_party/libevent/event.c |
+++ b/third_party/libevent/event.c |
@@ -107,7 +107,7 @@ static const struct eventop *eventops[] = { |
/* Global state */ |
struct event_base *current_base = NULL; |
extern struct event_base *evsignal_base; |
-static int use_monotonic; |
+static int use_monotonic = 1; |
/* Prototypes */ |
static void event_queue_insert(struct event_base *, struct event *, int); |
@@ -120,17 +120,6 @@ static int timeout_next(struct event_base *, struct timeval **); |
static void timeout_process(struct event_base *); |
static void timeout_correct(struct event_base *, struct timeval *); |
-static void |
-detect_monotonic(void) |
-{ |
-#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) |
- struct timespec ts; |
- |
- if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) |
- use_monotonic = 1; |
-#endif |
-} |
- |
static int |
gettime(struct event_base *base, struct timeval *tp) |
{ |
@@ -140,18 +129,18 @@ gettime(struct event_base *base, struct timeval *tp) |
} |
#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) |
- if (use_monotonic) { |
- struct timespec ts; |
- |
- if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1) |
- return (-1); |
+ struct timespec ts; |
+ if (use_monotonic && |
+ clock_gettime(CLOCK_MONOTONIC, &ts) == 0) { |
tp->tv_sec = ts.tv_sec; |
tp->tv_usec = ts.tv_nsec / 1000; |
return (0); |
} |
#endif |
+ use_monotonic = 0; |
+ |
return (evutil_gettimeofday(tp, NULL)); |
} |
@@ -175,7 +164,6 @@ event_base_new(void) |
if ((base = calloc(1, sizeof(struct event_base))) == NULL) |
event_err(1, "%s: calloc", __func__); |
- detect_monotonic(); |
gettime(base, &base->event_tv); |
min_heap_ctor(&base->timeheap); |