Haskell: TVar: orElse

Является ли "еще" частью orElse вызывается, когда транзакция повторяется из-за записи другой транзакции в TVar он прочитал, или только когда retry явно называется?

1 ответ

Решение

Если у вас есть

или еще

затем b запускается только если retry называется явно в a, Иначе orElse по существу станет недетерминированным. (Повторный запуск транзакций, выполняемых средой выполнения STM, прозрачен и не должен влиять на результаты любых вычислений.)

Другие вопросы по тегам