2 ms·
Even standard system calls are messily implemented. poll() is broken. kqueue is broken. See http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#OS_X_AND_DARWIN
by FooBarWidget 15y ago
Even standard system calls are messily implemented. poll() is broken. kqueue is broken. See http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#OS_X_AND_DARWIN_BUGS http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#OS_X_AN...
Last year I even discovered a kernel bug in their file descriptor passing implementation that, AFAIK, still isn't fixed. Various signal handling properties are more buggy than on Linux.
- udp 15y agoTCP_NOPUSH is broken, too - if you enable it and then later disable it with setsockopt, it doesn't immediately send any pending data (as it does on FreeBSD, and as TCP_CORK does on Linux). IIRC, a lot of their code came from FreeBSD back in the day. I wonder why they didn't keep it in sync?