关于GHC运行时内部的一些论文提到,它使用epoll/kqueue/poll来检测文件描述符是否已准备好读取/写入。
我能理解套接字I/O是如何完成的。但是磁盘文件访问呢? poll syscall不适用于普通文件,仅适用于套接字I/O。真的?
我在这里可以想象的唯一选择是使用线程池来阻止系统调用,每个请求一个线程...
最佳答案
在无线程的RTS中,整个运行时将阻塞。在线程RTS中,它将通过线程池进行安全的外部调用,因此该功能不会阻塞。
关于c - GHC运行时如何处理文件I/O?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23745096/