标签: c haskell ghc
有关GHC运行时内部的一些文章提到它使用epoll / kqueue / poll来检测文件描述符是否已准备好进行读/写。
我可以理解它是如何为套接字I / O做的。但是磁盘文件访问呢? poll syscall不能与普通文件一起使用,只能使用套接字I / O;真?
我能想到的唯一选择是使用线程池阻塞系统调用,每个请求一个线程...
答案 0 :(得分:3)
在无螺纹的RTS中,整个运行时将阻塞。在线程RTS中,它将通过线程池执行这样的安全外部调用,因此该功能不会阻塞。