| 100 | } |
| 101 | |
| 102 | static int aeApiAddEvent(aeEventLoop *eventLoop, int fd, int mask) { |
| 103 | aeApiState *state = (aeApiState*)eventLoop->apidata; |
| 104 | struct kevent ke; |
| 105 | |
| 106 | if (mask & AE_READABLE) { |
| 107 | EV_SET(&ke, fd, EVFILT_READ, EV_ADD, 0, 0, NULL); |
| 108 | if (kevent(state->kqfd, &ke, 1, NULL, 0, NULL) == -1) return -1; |
| 109 | } |
| 110 | if (mask & AE_WRITABLE) { |
| 111 | EV_SET(&ke, fd, EVFILT_WRITE, EV_ADD, 0, 0, NULL); |
| 112 | if (kevent(state->kqfd, &ke, 1, NULL, 0, NULL) == -1) return -1; |
| 113 | } |
| 114 | return 0; |
| 115 | } |
| 116 | |
| 117 | static void aeApiDelEvent(aeEventLoop *eventLoop, int fd, int mask) { |
| 118 | aeApiState *state = (aeApiState*)eventLoop->apidata; |