Changeset 51858943917d1d17f853848975f6f209a7073def
- Timestamp:
- 07/17/11 03:04:34 (10 months ago)
- Author:
- D J Capelis <dev@…>
- Parents:
- 434f758431a198683e1276f61d2c5f8edd7cdc01
- git-committer:
- D J Capelis <dev@capelis.dj> / 2011-07-17T03:04:34Z-0700
- Message:
-
Fix broken epoll->kqueue compat shim, make error handling more useful
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r434f758
|
r5185894
|
|
| 51 | 51 | |
| 52 | 52 | err: |
| | 53 | perror("In epoll_create() compat code"); |
| 53 | 54 | return -1; |
| 54 | 55 | } |
| … |
… |
|
| 62 | 63 | // Set up kevent structure |
| 63 | 64 | struct kevent64_s kev; |
| 64 | | struct timespec ts; |
| 65 | 65 | switch(op) |
| 66 | 66 | { |
| 67 | 67 | case EV_DELETE: |
| 68 | | //case EPOLL_CTL_MOD: |
| | 68 | error_chk(event == NULL) |
| 69 | 69 | EV_SET64(&kev, fd, EPOLLIN, op, 0, 0, 0, 0, 0); |
| 70 | | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, &ts) == -1); |
| | 70 | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, NULL) == -1); |
| 71 | 71 | EV_SET64(&kev, fd, EPOLLOUT, op, 0, 0, 0, 0, 0); |
| 72 | | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, &ts) == -1); |
| 73 | | if(op == EPOLL_CTL_DEL) |
| 74 | | break; |
| | 72 | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, NULL) == -1); |
| | 73 | break; |
| 75 | 74 | case EV_ADD: |
| 76 | 75 | error_chk(event == NULL) |
| 77 | 76 | EV_SET64(&kev, fd, event->events, op, 0, 0, 0, 0, 0); |
| 78 | | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, &ts) == -1); |
| | 77 | error_chk(kevent64(kq, &kev, 1, NULL, 0, 0, NULL) == -1); |
| | 78 | break; |
| 79 | 79 | } |
| 80 | 80 | |
| … |
… |
|
| 82 | 82 | |
| 83 | 83 | err: |
| | 84 | perror("In epoll_ctl() compat code"); |
| 84 | 85 | return -1; |
| 85 | 86 | } |
| … |
… |
|
| 124 | 125 | |
| 125 | 126 | err: |
| | 127 | perror("In epoll_wait() compat code"); |
| 126 | 128 | return -1; |
| 127 | 129 | } |