10 ms·
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. [0] ht
by shakna 2y ago
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.
[0] https://git.sr.ht/~sircmpwn/hare-ev https://git.sr.ht/~sircmpwn/hare-ev
- sakras 2y agoMaybe 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.
- shakna 2y agoepoll 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 https://www.man7.org/linux/man-pages/man7/epoll.7.html [1] https://docs.harelang.org/rt#SYS_epoll_create https://docs.harelang.org/rt#SYS_epoll_create
- sakras 2y ago> 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.