[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:
Willy Tarreau 2007-04-09 17:16:07 +02:00
parent 8ae42f42f8
commit 8755285486
1 changed files with 7 additions and 1 deletions

View File

@ -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
*/