| 197 struct kevent kev; |
197 struct kevent kev; |
| 198 EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, event); |
198 EV_SET(&kev, fd, EVFILT_WRITE, EV_ADD, 0, 0, event); |
| 199 return kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
199 return kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
| 200 } |
200 } |
| 201 |
201 |
| |
202 int ev_poll(EventHandler *h, int fd, Event *event) { |
| |
203 event->events = EVENT_POLLOUT; |
| |
204 int filter = 0; |
| |
205 if(event->events & EVENT_POLLOUT) { |
| |
206 filter |= EVFILT_WRITE; |
| |
207 } |
| |
208 if(event->events & EVENT_POLIN) { |
| |
209 filter |= EVFILT_READ; |
| |
210 } |
| |
211 struct kevent kev; |
| |
212 EV_SET(&kev, fd, filter, EV_ADD, 0, 0, event); |
| |
213 return kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
| |
214 } |
| |
215 |
| 202 int ev_remove_poll(EventHandler *h, int fd) { |
216 int ev_remove_poll(EventHandler *h, int fd) { |
| 203 struct kevent kev; |
217 struct kevent kev; |
| 204 EV_SET(&kev, fd, EVFILT_READ, EV_DELETE, 0, 0, NULL); |
218 EV_SET(&kev, fd, EVFILT_READ, EV_DELETE, 0, 0, NULL); |
| 205 int r1 = kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
219 int r1 = kevent(h->kqueue, &kev, 1, NULL, 0, NULL); |
| 206 EV_SET(&kev, fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL); |
220 EV_SET(&kev, fd, EVFILT_WRITE, EV_DELETE, 0, 0, NULL); |