[Haskell-cafe] Stronger STM primitives needed? Or am I just doing it wrong?

Matthew Brecknell haskell at brecknell.org
Wed Apr 23 22:28:38 EDT 2008

I said:
> In that case, we can treat subatomic as a "hint" to the STM runtime. It
> could have a simpler type, and the semantics of "id":
> subatomic :: STM a -> STM a
> If the subatomic transaction turns out to be read-only, then we get the
> benefit of all four cases Ryan describes above. If it turns out to be
> read-write, we only get the benefit of cases 2 to 4, while case 1 must
> restart. It doesn't matter if the subatomic transaction captures
> variables which depend on previous reads, since changes to those reads
> would cause a restart regardless of the outcome of the subatomic
> transaction.

Scrap that. I realise now that it allows leakage of information read
from variables. It would need to be:

subatomic :: STM a -> STM ()

Which means it's no longer just a hint.

More information about the Haskell-Cafe mailing list