… | |
… | |
86 | kqueue_eventmax = array_roundsize (struct kevent, kqueue_changecnt); |
86 | kqueue_eventmax = array_roundsize (struct kevent, kqueue_changecnt); |
87 | kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); |
87 | kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); |
88 | } |
88 | } |
89 | |
89 | |
90 | ts.tv_sec = (time_t)timeout; |
90 | ts.tv_sec = (time_t)timeout; |
91 | ts.tv_nsec = (long)(timeout - (ev_tstamp)ts.tv_sec) * 1e9; |
91 | ts.tv_nsec = (long)((timeout - (ev_tstamp)ts.tv_sec) * 1e9); |
92 | res = kevent (kqueue_fd, kqueue_changes, kqueue_changecnt, kqueue_events, kqueue_eventmax, &ts); |
92 | res = kevent (kqueue_fd, kqueue_changes, kqueue_changecnt, kqueue_events, kqueue_eventmax, &ts); |
93 | kqueue_changecnt = 0; |
93 | kqueue_changecnt = 0; |
94 | |
94 | |
95 | if (res < 0) |
95 | if (res < 0) |
96 | { |
96 | { |
… | |
… | |
180 | /* detected broken kqueue */ |
180 | /* detected broken kqueue */ |
181 | close (kqueue_fd); |
181 | close (kqueue_fd); |
182 | return 0; |
182 | return 0; |
183 | } |
183 | } |
184 | |
184 | |
185 | method_fudge = 1e-3; /* needed to compensate for kevent returning early */ |
185 | backend_fudge = 1e-3; /* needed to compensate for kevent returning early */ |
186 | method_modify = kqueue_modify; |
186 | backend_modify = kqueue_modify; |
187 | method_poll = kqueue_poll; |
187 | backend_poll = kqueue_poll; |
188 | |
188 | |
189 | kqueue_eventmax = 64; /* intiial number of events receivable per poll */ |
189 | kqueue_eventmax = 64; /* intiial number of events receivable per poll */ |
190 | kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); |
190 | kqueue_events = (struct kevent *)ev_malloc (sizeof (struct kevent) * kqueue_eventmax); |
191 | |
191 | |
192 | kqueue_changes = 0; |
192 | kqueue_changes = 0; |
193 | kqueue_changemax = 0; |
193 | kqueue_changemax = 0; |
194 | kqueue_changecnt = 0; |
194 | kqueue_changecnt = 0; |
195 | |
195 | |
196 | return EVMETHOD_KQUEUE; |
196 | return EVBACKEND_KQUEUE; |
197 | } |
197 | } |
198 | |
198 | |
199 | static void |
199 | static void |
200 | kqueue_destroy (EV_P) |
200 | kqueue_destroy (EV_P) |
201 | { |
201 | { |