Closed theoparis closed 6 months ago
None of the things you quoted are problems of libev. Not exposing ev_loop in headers is a common C design pattern (read about it here: https://en.wikipedia.org/wiki/Opaque_pointer)
If we actually found a bug in libev, then replacing it would become necessary. I don't see a point for now.
Also duplicate of #1163
It seems like the github repository for libev hasn't been updated for 8 years, and there is a PR that fixes compatibility with C++17 that will never be merged due to the github repository being unmaintained. Additionally, libev seems to have design issues - I tried to fork it but it turns out the ev_loop struct is defined in a C file instead of a .h file and it is hard to move it to the h file without rewriting the macro system it uses. Additionally, the libev website only supports http 😬
Example of the design issues from there being no struct defined in ev.h: