ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev_kqueue.c
(Generate patch)

Comparing libev/ev_kqueue.c (file contents):
Revision 1.59 by root, Wed Jun 26 00:01:46 2019 UTC vs.
Revision 1.61 by root, Sat Aug 17 05:30:16 2019 UTC

101 EV_TS_SET (ts, timeout); 101 EV_TS_SET (ts, timeout);
102 res = kevent (backend_fd, kqueue_changes, kqueue_changecnt, kqueue_events, kqueue_eventmax, &ts); 102 res = kevent (backend_fd, kqueue_changes, kqueue_changecnt, kqueue_events, kqueue_eventmax, &ts);
103 EV_ACQUIRE_CB; 103 EV_ACQUIRE_CB;
104 kqueue_changecnt = 0; 104 kqueue_changecnt = 0;
105 105
106 if (expect_false (res < 0)) 106 if (ecb_expect_false (res < 0))
107 { 107 {
108 if (errno != EINTR) 108 if (errno != EINTR)
109 ev_syserr ("(libev) kqueue kevent"); 109 ev_syserr ("(libev) kqueue kevent");
110 110
111 return; 111 return;
113 113
114 for (i = 0; i < res; ++i) 114 for (i = 0; i < res; ++i)
115 { 115 {
116 int fd = kqueue_events [i].ident; 116 int fd = kqueue_events [i].ident;
117 117
118 if (expect_false (kqueue_events [i].flags & EV_ERROR)) 118 if (ecb_expect_false (kqueue_events [i].flags & EV_ERROR))
119 { 119 {
120 int err = kqueue_events [i].data; 120 int err = kqueue_events [i].data;
121 121
122 /* we are only interested in errors for fds that we are interested in :) */ 122 /* we are only interested in errors for fds that we are interested in :) */
123 if (anfds [fd].events) 123 if (anfds [fd].events)
149 : kqueue_events [i].filter == EVFILT_WRITE ? EV_WRITE 149 : kqueue_events [i].filter == EVFILT_WRITE ? EV_WRITE
150 : 0 150 : 0
151 ); 151 );
152 } 152 }
153 153
154 if (expect_false (res == kqueue_eventmax)) 154 if (ecb_expect_false (res == kqueue_eventmax))
155 { 155 {
156 ev_free (kqueue_events); 156 ev_free (kqueue_events);
157 kqueue_eventmax = array_nextsize (sizeof (struct kevent), kqueue_eventmax, kqueue_eventmax + 1); 157 kqueue_eventmax = array_nextsize (sizeof (struct kevent), kqueue_eventmax, kqueue_eventmax + 1);
158 kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); 158 kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax);
159 } 159 }
168 if ((backend_fd = kqueue ()) < 0) 168 if ((backend_fd = kqueue ()) < 0)
169 return 0; 169 return 0;
170 170
171 fcntl (backend_fd, F_SETFD, FD_CLOEXEC); /* not sure if necessary, hopefully doesn't hurt */ 171 fcntl (backend_fd, F_SETFD, FD_CLOEXEC); /* not sure if necessary, hopefully doesn't hurt */
172 172
173 backend_mintime = 1e-9; /* apparently, they did the right thing in freebsd */ 173 backend_mintime = EV_TS_CONST (1e-9); /* apparently, they did the right thing in freebsd */
174 backend_modify = kqueue_modify; 174 backend_modify = kqueue_modify;
175 backend_poll = kqueue_poll; 175 backend_poll = kqueue_poll;
176 176
177 kqueue_eventmax = 64; /* initial number of events receivable per poll */ 177 kqueue_eventmax = 64; /* initial number of events receivable per poll */
178 kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); 178 kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines