Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(317)

Side by Side Diff: third_party/libevent/kqueue.c

Issue 412006: posix: upgrade libevent from 1.4.7 to 1.4.13 (Closed)
Patch Set: better readme Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* $OpenBSD: kqueue.c,v 1.5 2002/07/10 14:41:31 art Exp $ */ 1 /* $OpenBSD: kqueue.c,v 1.5 2002/07/10 14:41:31 art Exp $ */
2 2
3 /* 3 /*
4 * Copyright 2000-2002 Niels Provos <provos@citi.umich.edu> 4 * Copyright 2000-2002 Niels Provos <provos@citi.umich.edu>
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 12 matching lines...) Expand all
23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 #ifdef HAVE_CONFIG_H 29 #ifdef HAVE_CONFIG_H
30 #include "config.h" 30 #include "config.h"
31 #endif 31 #endif
32 32
33 #define _GNU_SOURCE 1
34
33 #include <sys/types.h> 35 #include <sys/types.h>
34 #ifdef HAVE_SYS_TIME_H 36 #ifdef HAVE_SYS_TIME_H
35 #include <sys/time.h> 37 #include <sys/time.h>
36 #else 38 #else
37 #include <sys/_time.h> 39 #include <sys/_libevent_time.h>
38 #endif 40 #endif
39 #include <sys/queue.h> 41 #include <sys/queue.h>
40 #include <sys/event.h> 42 #include <sys/event.h>
41 #include <signal.h> 43 #include <signal.h>
42 #include <stdio.h> 44 #include <stdio.h>
43 #include <stdlib.h> 45 #include <stdlib.h>
44 #include <string.h> 46 #include <string.h>
45 #include <unistd.h> 47 #include <unistd.h>
46 #include <errno.h> 48 #include <errno.h>
47 #include <assert.h> 49 #include <assert.h>
48 #ifdef HAVE_INTTYPES_H 50 #ifdef HAVE_INTTYPES_H
49 #include <inttypes.h> 51 #include <inttypes.h>
50 #endif 52 #endif
51 53
52 /* Some platforms apparently define the udata field of struct kevent as 54 /* Some platforms apparently define the udata field of struct kevent as
53 * intptr_t, whereas others define it as void*. There doesn't seem to be an 55 * intptr_t, whereas others define it as void*. There doesn't seem to be an
54 * easy way to tell them apart via autoconf, so we need to use OS macros. */ 56 * easy way to tell them apart via autoconf, so we need to use OS macros. */
55 #if defined(HAVE_INTTYPES_H) && !defined(__OpenBSD__) && !defined(__FreeBSD__) & & !defined(__darwin__) && !defined(__APPLE__) 57 #if defined(HAVE_INTTYPES_H) && !defined(__OpenBSD__) && !defined(__FreeBSD__) & & !defined(__darwin__) && !defined(__APPLE__)
56 #define PTR_TO_UDATA(x) ((intptr_t)(x)) 58 #define PTR_TO_UDATA(x) ((intptr_t)(x))
57 #else 59 #else
58 #define PTR_TO_UDATA(x) (x) 60 #define PTR_TO_UDATA(x) (x)
59 #endif 61 #endif
60 62
61 #include "event.h" 63 #include "event.h"
62 #include "event-internal.h" 64 #include "event-internal.h"
63 #include "log.h" 65 #include "log.h"
64 #include "event-internal.h"
65 66
66 #define EVLIST_X_KQINKERNEL 0x1000 67 #define EVLIST_X_KQINKERNEL 0x1000
67 68
68 #define NEVENT 64 69 #define NEVENT 64
69 70
70 struct kqop { 71 struct kqop {
71 struct kevent *changes; 72 struct kevent *changes;
72 int nchanges; 73 int nchanges;
73 struct kevent *events; 74 struct kevent *events;
74 struct event_list evsigevents[NSIG]; 75 struct event_list evsigevents[NSIG];
(...skipping 19 matching lines...) Expand all
94 1 /* need reinit */ 95 1 /* need reinit */
95 }; 96 };
96 97
97 static void * 98 static void *
98 kq_init(struct event_base *base) 99 kq_init(struct event_base *base)
99 { 100 {
100 int i, kq; 101 int i, kq;
101 struct kqop *kqueueop; 102 struct kqop *kqueueop;
102 103
103 /* Disable kqueue when this environment variable is set */ 104 /* Disable kqueue when this environment variable is set */
104 » if (getenv("EVENT_NOKQUEUE")) 105 » if (evutil_getenv("EVENT_NOKQUEUE"))
105 return (NULL); 106 return (NULL);
106 107
107 if (!(kqueueop = calloc(1, sizeof(struct kqop)))) 108 if (!(kqueueop = calloc(1, sizeof(struct kqop))))
108 return (NULL); 109 return (NULL);
109 110
110 /* Initalize the kernel queue */ 111 /* Initalize the kernel queue */
111 112
112 if ((kq = kqueue()) == -1) { 113 if ((kq = kqueue()) == -1) {
113 event_warn("kqueue"); 114 event_warn("kqueue");
114 free (kqueueop); 115 free (kqueueop);
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 441
441 if (kqop->changes) 442 if (kqop->changes)
442 free(kqop->changes); 443 free(kqop->changes);
443 if (kqop->events) 444 if (kqop->events)
444 free(kqop->events); 445 free(kqop->events);
445 if (kqop->kq >= 0 && kqop->pid == getpid()) 446 if (kqop->kq >= 0 && kqop->pid == getpid())
446 close(kqop->kq); 447 close(kqop->kq);
447 memset(kqop, 0, sizeof(struct kqop)); 448 memset(kqop, 0, sizeof(struct kqop));
448 free(kqop); 449 free(kqop);
449 } 450 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698