tvar

Haskell: TVar: orElse

会有一股神秘感。 提交于 2019-12-09 03:29:15
问题 Is the "else" part of orElse called when a transaction is retried due to another transaction writing to a TVar it had read, or only when retry is explicitly called? 回答1: If you have orElse a b then b is only run if retry is called explicitly in a . Otherwise orElse would essentially become nondeterministic. (The rerunning of transactions that is done by the STM runtime is transparent and should not effect the outcome of any computation.) 来源: https://stackoverflow.com/questions/10101044

Haskell: TVar: orElse

落爺英雄遲暮 提交于 2019-12-01 15:22:24
Is the "else" part of orElse called when a transaction is retried due to another transaction writing to a TVar it had read, or only when retry is explicitly called? If you have orElse a b then b is only run if retry is called explicitly in a . Otherwise orElse would essentially become nondeterministic. (The rerunning of transactions that is done by the STM runtime is transparent and should not effect the outcome of any computation.) 来源: https://stackoverflow.com/questions/10101044/haskell-tvar-orelse