【发布时间】:2015-11-11 23:40:07
【问题描述】:
我正在尝试调试使用 STM 的程序。正如您在此处看到的,ThreadScope 读数指出了非常高的 CPU 活动:
所以我试图找出这是否是由于经常中止的事务而发生的。我想到的第一件事就是用这样的东西来测试:
atomically $ do
someWork
...
`orElse` do
unsafeIOToSTM $ traceEventIO "transaction aborted!"
retry
但我不确定这是否正确,或者这是否是在 STM 场景中进行调试的最佳方法。有什么想法吗?
【问题讨论】:
-
这也是我的做法。
-
您从这种方法中得到了什么结果?
-
没有痕迹。如果此方法正确,则不会中止任何事务。