Hacker News new | past | comments | ask | show | jobs | submit login

All this fuss because Linux wouldn't just implement kQueue ... Sigh.



Please explain to me how kqueue facilitates submitting arbitrarily large numbers of syscalls to the kernel as a single syscall, to be performed asynchronously no less. Even potentially submitted using no syscall at all, in polling mode.


Linux should have had kqueue instead of epoll. But io_uring is a different thing.


AFAIK it's unnecessary at this point, Linux has most of the equivalent functionality and there is a shim library for it: https://github.com/mheily/libkqueue


yes, these days you can get a file descriptor for pretty much everything so epoll is sufficient.

I think that epoll timeout granularity is still in milliseconds, so if you want to build high res timers on top of it for your event loop you have to either use zero timeout polling or use an explicit timerfd which adds overhead. I guess you can use plain ppoll (which has ns resolution timeouts) on the epoll fd.


This is corrected in io_uring too, if you use IORING_OP_TIMEOUT that takes a timespec64.


Solaris didn't port kqueue either. We're doomed to reinvent the wheel.


And Bryan Cantrill has expressed quite a bit of remorse about that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: