[MEDIUM] kqueue: do not manually remove fds
FDs attached to a kevent are automatically removed after close(). Also, do not mark the FDs as EV_CLEAR. We want to stay informed about readiness.
This commit is contained in:
parent
8ae42f42f8
commit
8755285486
|
@ -65,7 +65,7 @@ REGPRM2 static int __fd_set(const int fd, int dir)
|
|||
return 0;
|
||||
|
||||
FD_SET(fd, fd_evts[dir]);
|
||||
EV_SET(kev, fd, dir2filt[dir], EV_ADD|EV_CLEAR, 0, 0, NULL);
|
||||
EV_SET(kev, fd, dir2filt[dir], EV_ADD, 0, 0, NULL);
|
||||
kevent(kqueue_fd, kev, 1, NULL, 0, NULL);
|
||||
return 1;
|
||||
}
|
||||
|
@ -89,6 +89,12 @@ REGPRM1 static void __fd_rem(int fd)
|
|||
kevent(kqueue_fd, kev, changes, NULL, 0, NULL);
|
||||
}
|
||||
|
||||
REGPRM1 static void __fd_clo(int fd)
|
||||
{
|
||||
FD_CLR(fd, fd_evts[DIR_RD]);
|
||||
FD_CLR(fd, fd_evts[DIR_WR]);
|
||||
}
|
||||
|
||||
/*
|
||||
* kqueue() poller
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue