5

我担心 Acid State 会生成许多事件文件和检查点,用户“stepcut”告诉我有一个名为 createArchive 的酸解决方案的实现,它删除旧事件......问题是当我使用它时我得到这个错误:

<fileName.exe>: thread blocked indefinitely in an MVar operation

我认为它应有 w7 权限,但是当我在“管理员”下运行它时,我无法看到控制台,但事件文件仍然存在,所以我认为它不起作用。

如果我通过 ghci 运行代码,我不会收到错误,但它会锁定控制台,所以我需要 CtrlC 才能继续工作。

有人收到这个错误吗?

4

2 回答 2

2

在我编译我的程序没有优化后,这个错误从我的程序中消失了,如ghc --make -O0 Main.

于 2014-05-09T22:56:35.360 回答
2

这当然与权限无关。当尝试从没有人可以写入的空值中读取MVar,或者类似地尝试将值放入MVar已经满且不会被清空的值时,就会出现错误。这意味着某人的代码中存在错误。

如果 vivian(在评论中)认为这与GHC 错误有关,那么这个相关错误表明编译-fno-state-hack可能足以解决您的问题。看起来该错误至少从 GHC 7.2.2 开始就存在,但在(迄今为止未发布的)GHC 7.4.2 中已修复。

或者,它可能只是 中的一个错误acid-state,它似乎大量使用了MVars。在这种情况下,您应该确保您使用的是最新版本的库,然后尝试生成一个简单的测试用例,以便其他人可以验证问题。

于 2012-05-05T13:59:40.143 回答