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.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With