Index: third_party/libevent/chromium.patch |
diff --git a/third_party/libevent/chromium.patch b/third_party/libevent/chromium.patch |
index 31bc327c4dc24eef0c6f37bd15168f7eb0da09d8..08e012278c28e47779578f7db08c251dad854e39 100644 |
--- a/third_party/libevent/chromium.patch |
+++ b/third_party/libevent/chromium.patch |
@@ -81,3 +81,68 @@ index dcb0013..8b664b9 100644 |
#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); |