如果我在交易失败的STM内,并且作为正常控制流程的一部分重试(没有STM冲突等),我可能想向其他人指出采取纠正措施的方法。
如果纯粹是“传出”,那么我的STM仍然可以纯粹地重放。
我如何从STM重试中执行传出IO?
有人遇到过这个吗?这有多邪恶?
最佳答案
如果您确定执行的IO不会影响STM的不变式,则可以使用unsafeIOToSTM
。与所有unsafe
内容一样,请格外小心地使用它。
但是,我确实想知道您是否真的需要它。从问题中无法分辨。如果可以,则应避免这种情况。
关于haskell - STM和传出IO,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37162112/