Comment by sakras
2 months ago
Maybe I'm misunderstanding something, but it seems like ev is still multiprocessing? Reading the code, it looks like you can read/write to files, and if you want to kick off some other work it spawns a process. I don't see any instance of threads there.
epoll is threaded, not multiprocess. [0]
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.
[0] https://www.man7.org/linux/man-pages/man7/epoll.7.html
[1] https://docs.harelang.org/rt#SYS_epoll_create
> epoll is threaded, not multiprocess
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.