Haskell: TVar: orElse
Является ли "еще" частью orElse
вызывается, когда транзакция повторяется из-за записи другой транзакции в TVar
он прочитал, или только когда retry
явно называется?
1 ответ
Решение
Если у вас есть
или еще
затем b
запускается только если retry
называется явно в a
, Иначе orElse
по существу станет недетерминированным. (Повторный запуск транзакций, выполняемых средой выполнения STM, прозрачен и не должен влиять на результаты любых вычислений.)