哈斯克尔:TVar:orElse

时间:2012-04-11 06:35:44

标签: haskell concurrency ghc stm tvar

由于另一个事务写入其已读取的TVar或仅在显式调用orElse时,重试事务时,是否调用了retry的“else”部分? / p>

1 个答案:

答案 0 :(得分:10)

如果你有

  

orElse a b

然后只有在b中明确调用retry时才会运行a。否则orElse基本上会变得不确定。 (重新运行由STM运行时完成的事务是透明的,不应影响任何计算的结果。)