GHC运行时如何处理文件I / O?

时间:2014-05-19 18:51:43

标签: c haskell ghc

有关GHC运行时内部的一些文章提到它使用epoll / kqueue / poll来检测文件描述符是否已准备好进行读/写。

我可以理解它是如何为套接字I / O做的。但是磁盘文件访问呢? poll syscall不能与普通文件一起使用,只能使用套接字I / O;真?

我能想到的唯一选择是使用线程池阻塞系统调用,每个请求一个线程...

1 个答案:

答案 0 :(得分:3)

在无螺纹的RTS中,整个运行时将阻塞。在线程RTS中,它将通过线程池执行这样的安全外部调用,因此该功能不会阻塞。