Comment by ninjin
1 day ago
Which is why there is libevent [1]?
[1]: https://libevent.org
Unless I am mistaken, OpenBSD base even explicitly codes against the older libevent API internally and ships it with each release, despite at the very least supporting kqueue, and thus gains better portability for a number of their tools this way.
Personally, I just go with Posix select for small programs where performance is not critical anyway.
There are a whole bunch of these — libevent, libev, glib's main loop, Qt's main loop, Apache's modular event loop, …
…which is why there is libverto, a 2nd order abstraction.
It'd be funny if it weren't also sad.
libuv as well.