mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
[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;
|
return 0;
|
||||||
|
|
||||||
FD_SET(fd, fd_evts[dir]);
|
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);
|
kevent(kqueue_fd, kev, 1, NULL, 0, NULL);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -89,6 +89,12 @@ REGPRM1 static void __fd_rem(int fd)
|
|||||||
kevent(kqueue_fd, kev, changes, NULL, 0, NULL);
|
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
|
* kqueue() poller
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user