#ifdef _EVENT_HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
+diff --git a/third_party/libevent/README.chromium b/third_party/libevent/README.chromium
+index 9969566..7e5f8ba 100644
+diff --git a/third_party/libevent/event.c b/third_party/libevent/event.c
+index 1253352..8b6cae5 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);