2 ms·
As far as I know, it does not have similar functionality. But I’m not sure it needs one. It has kqueue, and unlike epoll, kqueue is a general-purpose way to ge
by Const-me 8y ago
As far as I know, it does not have similar functionality.
But I’m not sure it needs one. It has kqueue, and unlike epoll, kqueue is a general-purpose way to get events from kernel. It’s compatible not just with sockets, but also files and pipes, directory changes, processes, signals, timers, devices, and more. Not unlike IOCP on Windows.
On paper new uring is faster, but kqueue is not particularly slow either. And it’s available for couple decades now, i.e. it’s stable and tested really well. I’m happy Linux finally getting fast general purpose async IO, but I’ll only benefit from it after a year or so, after kernel updates are out, and after higher-level runtimes like golang and .net core are updated accordingly.
- machinecoffee 8y agoThere's also libkqueue for Linux - I would imagine they will also adopt io_uring when it's stable and ubiquitous enough, bringing the two APIs closer together. I find kqueue to be a great and well designed API, so that can only be a good thing IMHO.