hare-ev [0] is using epoll under the covers, which means multithreading is there, already. Especially as ev may be merged into the stdlib at some point.
hare-ev is using rt to make the epoll syscalls. [1]
> On Linux, ev is implemented with epoll. Note that, on Linux, I/O on regular files is always blocking.
epoll is orthogonal to threads. It _can_ be used in a multithreaded program, but it doesn't have to be. It may very well be implemented in terms of kernel threads, but that's not what I'm talking about. I'm talking about user-space threads.