Differences From Artifact [928947a9f6]:
- File src/OFKernelEventObserver_poll.m — part of check-in [96e20b8093] at 2014-01-28 22:50:37 on branch trunk — Rename OFStreamObserver -> OFKernelEventObserver (user: js, size: 4055) [annotate] [blame] [check-ins using]
To Artifact [b0a53ca94b]:
- File
src/OFKernelEventObserver_poll.m
— part of check-in
[c694569d86]
at
2014-01-29 15:54:59
on branch trunk
— Generalize OFKernelEventObserver
It is no longer limited to streams now. (user: js, size: 3815) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
78 79 80 81 82 83 84 | FDs[i].events |= events; found = true; break; } } if (!found) { | | | | 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | FDs[i].events |= events; found = true; break; } } if (!found) { struct pollfd p = { fd, events, 0 }; [_FDs addItem: &p]; } } - (void)OF_removeFileDescriptor: (int)fd withEvents: (short)events { struct pollfd *FDs = [_FDs items]; size_t i, nFDs = [_FDs count]; for (i = 0; i < nFDs; i++) { if (FDs[i].fd == fd) { FDs[i].events &= ~events; if (FDs[i].events == 0) [_FDs removeItemAtIndex: i]; break; } } } |
︙ | ︙ | |||
167 168 169 170 171 172 173 | FDs[i].revents = 0; objc_autoreleasePoolPop(pool); continue; } if ([_delegate respondsToSelector: | | | | | | | < < < < < < < < < | 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | FDs[i].revents = 0; objc_autoreleasePoolPop(pool); continue; } if ([_delegate respondsToSelector: @selector(objectIsReadyForReading:)]) [_delegate objectIsReadyForReading: _FDToObject[FDs[i].fd]]; realEvents++; } if (FDs[i].revents & POLLOUT) { if ([_delegate respondsToSelector: @selector(objectIsReadyForWriting:)]) [_delegate objectIsReadyForWriting: _FDToObject[FDs[i].fd]]; realEvents++; } FDs[i].revents = 0; objc_autoreleasePoolPop(pool); |
︙ | ︙ |