08e012278c28e47779578f7db08c251dad854e39
[platform/framework/web/crosswalk.git] / src / third_party / libevent / chromium.patch
1 diff --git a/third_party/libevent/evdns.c b/third_party/libevent/evdns.c
2 index f07ecc9..da6ea19 100644
3 --- a/third_party/libevent/evdns.c
4 +++ b/third_party/libevent/evdns.c
5 @@ -134,7 +134,7 @@
6  typedef ev_uint8_t u_char;
7  typedef unsigned int uint;
8  #endif
9 -#include <event.h>
10 +#include "event.h"
11
12  #define u64 ev_uint64_t
13  #define u32 ev_uint32_t
14 diff --git a/third_party/libevent/evdns.h b/third_party/libevent/evdns.h
15 index 1eb5c38..fca4ac3 100644
16 --- a/third_party/libevent/evdns.h
17 +++ b/third_party/libevent/evdns.h
18 @@ -165,7 +165,7 @@ extern "C" {
19  #endif
20
21  /* For integer types. */
22 -#include <evutil.h>
23 +#include "evutil.h"
24
25  /** Error codes 0-5 are as described in RFC 1035. */
26  #define DNS_ERR_NONE 0
27 diff --git a/third_party/libevent/event-config.h b/third_party/libevent/event-config.h
28 new file mode 100644
29 index 0000000..78a4727
30 --- /dev/null
31 +++ b/third_party/libevent/event-config.h
32 @@ -0,0 +1,16 @@
33 +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
34 +// Use of this source code is governed by a BSD-style license that can be
35 +// found in the LICENSE file.
36 +
37 +// This file is Chromium-specific, and brings in the appropriate
38 +// event-config.h depending on your platform.
39 +
40 +#if defined(__APPLE__)
41 +#include "mac/event-config.h"
42 +#elif defined(__linux__)
43 +#include "linux/event-config.h"
44 +#elif defined(__FreeBSD__)
45 +#include "freebsd/event-config.h"
46 +#else
47 +#error generate event-config.h for your platform
48 +#endif
49 diff --git a/third_party/libevent/event.h b/third_party/libevent/event.h
50 index cfa0fc3..72e9b8b 100644
51 --- a/third_party/libevent/event.h
52 +++ b/third_party/libevent/event.h
53 @@ -159,7 +159,7 @@
54  extern "C" {
55  #endif
56  
57 -#include <event-config.h>
58 +#include "event-config.h"
59  #ifdef _EVENT_HAVE_SYS_TYPES_H
60  #include <sys/types.h>
61  #endif
62 @@ -172,7 +172,7 @@ extern "C" {
63  #include <stdarg.h>
64  
65  /* For int types. */
66 -#include <evutil.h>
67 +#include "evutil.h"
68  
69  #ifdef WIN32
70  #define WIN32_LEAN_AND_MEAN
71 diff --git a/third_party/libevent/evutil.h b/third_party/libevent/evutil.h
72 index dcb0013..8b664b9 100644
73 --- a/third_party/libevent/evutil.h
74 +++ b/third_party/libevent/evutil.h
75 @@ -38,7 +38,7 @@
76  extern "C" {
77  #endif
78  
79 -#include <event-config.h>
80 +#include "event-config.h"
81  #ifdef _EVENT_HAVE_SYS_TIME_H
82  #include <sys/time.h>
83  #endif
84 diff --git a/third_party/libevent/README.chromium b/third_party/libevent/README.chromium
85 index 9969566..7e5f8ba 100644
86 diff --git a/third_party/libevent/event.c b/third_party/libevent/event.c
87 index 1253352..8b6cae5 100644
88 --- a/third_party/libevent/event.c
89 +++ b/third_party/libevent/event.c
90 @@ -107,7 +107,7 @@ static const struct eventop *eventops[] = {
91  /* Global state */
92  struct event_base *current_base = NULL;
93  extern struct event_base *evsignal_base;
94 -static int use_monotonic;
95 +static int use_monotonic = 1;
96  
97  /* Prototypes */
98  static void    event_queue_insert(struct event_base *, struct event *, int);
99 @@ -120,17 +120,6 @@ static int timeout_next(struct event_base *, struct timeval **);
100  static void    timeout_process(struct event_base *);
101  static void    timeout_correct(struct event_base *, struct timeval *);
102  
103 -static void
104 -detect_monotonic(void)
105 -{
106 -#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
107 -       struct timespec ts;
108 -
109 -       if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0)
110 -               use_monotonic = 1;
111 -#endif
112 -}
113 -
114  static int
115  gettime(struct event_base *base, struct timeval *tp)
116  {
117 @@ -140,18 +129,18 @@ gettime(struct event_base *base, struct timeval *tp)
118         }
119  
120  #if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC)
121 -       if (use_monotonic) {
122 -               struct timespec ts;
123 -
124 -               if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
125 -                       return (-1);
126 +       struct timespec ts;
127  
128 +       if (use_monotonic &&
129 +           clock_gettime(CLOCK_MONOTONIC, &ts) == 0) {
130                 tp->tv_sec = ts.tv_sec;
131                 tp->tv_usec = ts.tv_nsec / 1000;
132                 return (0);
133         }
134  #endif
135  
136 +       use_monotonic = 0;
137 +
138         return (evutil_gettimeofday(tp, NULL));
139  }
140  
141 @@ -175,7 +164,6 @@ event_base_new(void)
142         if ((base = calloc(1, sizeof(struct event_base))) == NULL)
143                 event_err(1, "%s: calloc", __func__);
144  
145 -       detect_monotonic();
146         gettime(base, &base->event_tv);
147         
148         min_heap_ctor(&base->timeheap);