I just got reminded that epoll() has no effect on regular files on Linux by 
reading an nginx article [1] [2] and why that is [3] [4].

By what means does the IO manager make reads (wraps around the read() syscall 
on Linux) non-blocking?

Does it always use read() in `foreign import safe` (or `interruptible`) so that 
an OS thread is spawned?

It would be great if somebody could point me to the code where that's done (not 
again: for *regular* files).

Thanks!
Niklas


[1]: https://www.nginx.com/blog/thread-pools-boost-performance-9x/
[2]: https://stackoverflow.com/questions/8057892/epoll-on-regular-files
[3]: https://jvns.ca/blog/2017/06/03/async-io-on-linux--select--poll--and-epoll/
[4]: 
https://groups.google.com/forum/#!topic/comp.os.linux.development.system/K-fC-G6P4EA
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to