2 ms·
I don’t see how adding a new syscall to monitor something new via epoll is more desirable than adding a new BSD event filter. Either way, you are modifying the
by ryao 2y ago
I don’t see how adding a new syscall to monitor something new via epoll is more desirable than adding a new BSD event filter. Either way, you are modifying the syscall interface. The initial epoll_create() had to be revised with epoll_create1(). It is even cited on slide 53 as being an example of a past design failure:
https://www.man7.org/conf/lpc2014/designing_linux_kernel_APIs.pdf https://www.man7.org/conf/lpc2014/designing_linux_kernel_API...
Interestingly, the BSD kqueue made the same mistake and had to be revised for the same reason, which is why kqueue1() was made. However, by the points on the technical checklist there for syscall design, kqueue is an excellent design, minus the one mistake of not supporting O_CLOEXEC at the beginning.