我担心酸状态会产生许多事件文件和检查点,而用户“stepcut”告诉我有一个名为createArchive的解决方案实现了删除旧事件...... 问题是,当我使用它时,我收到此错误:
<fileName.exe>: thread blocked indefinitely in an MVar operation
我认为它应该获得w7权限,但是当我在'admin'下运行时,我无法看到控制台,但事件文件仍然存在,所以我认为它不起作用。
如果我通过ghci运行代码,我不会收到错误,但它会锁定控制台,所以我需要CtrlC才能继续工作。
有人得到了这个错误吗?
答案 0 :(得分:2)
这肯定与权限无关。当尝试从空的MVar
读取没有人可以写入的内容时,或者类似地尝试将值放入已经满的MVar
并且不会被清空时,会出现错误。这意味着某人的代码中存在错误。
如果vivian(在评论中)与this GHC bug相关,那么this related bug表示使用-fno-state-hack
进行编译可能足以解决您的问题。看起来这个bug至少存在于GHC 7.2.2之后,但在(迄今未发布的)GHC 7.4.2中已经修复。
或者,它可能只是acid-state
中的一个错误,它似乎大量使用了MVar
。在这种情况下,您应该确保使用最新版本的库,然后尝试生成一个简单的测试用例,以便其他人可以验证问题。
答案 1 :(得分:2)
我编译程序后没有进行优化,这个错误从我的程序中消失了,如ghc --make -O0 Main
。