Apple also has no api to write a fast server.
Libdispatch is a burden to use for a server because of its book keeping overhead, and their history with kqueue makes it hard to convince someone to use it.
Libdispatch is a burden to use for a server because of its book keeping overhead, and their history with kqueue makes it hard to convince someone to use it.
There’s no io_uring, but in practice, almost all servers run epoll anyway, don’t they?
MacOS’s implementation is an order of magnitude or more slower than (say) FreeBSD though, so its not a valid comparison that the syscall simply exists.
Another example of a syscall performing differently would be gettimeofday() in OpenBSD vs linux, its an extremely cheap operation in Linux but quite costly in OpenBSD despite being identical at the kernel boundary.