fix kqueue eof event

This commit is contained in:
zixun
2018-07-05 18:35:43 +08:00
committed by 云风
parent 0e41231298
commit 1df72c0afe
4 changed files with 10 additions and 2 deletions

View File

@@ -73,9 +73,11 @@ sp_wait(int kfd, struct event *e, int max) {
for (i=0;i<n;i++) {
e[i].s = ev[i].udata;
unsigned filter = ev[i].filter;
e[i].write = (filter == EVFILT_WRITE);
e[i].read = (filter == EVFILT_READ);
bool eof = (ev[i].flags & EV_EOF) != 0;
e[i].write = (filter == EVFILT_WRITE) && (!eof);
e[i].read = (filter == EVFILT_READ) && (!eof);
e[i].error = false; // kevent has not error event
e[i].eof = eof;
}
return n;