是否有一个haskell 库函数可以在不轮询的情况下监控文件?
通过轮询,我会做这样的事情:
monitor file mtime handler = do
threadDelay n -- sleep `n` ns
t <- getModificationTime file
if t > mtime
then handler >> monitor file t handler
else monitor file mtime handler
我想要的是一个阻塞的 getModificationTime ,它将被系统唤醒。有什么可用的吗?
如果它仅可用于 posix 系统,我会非常高兴,但越便携越好 :-)
编辑:我知道hinotify,但我在 Mac 上(这就是我提到 POSIX 的原因)。