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