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.