[Haskell-cafe] Non-strict evaluation and concurrency (STM) : conflict?

Edward Z. Yang ezyang at MIT.EDU
Tue Sep 28 09:15:50 EDT 2010

Excerpts from Romain Demeyer's message of Tue Sep 28 09:06:53 -0400 2010:
> That's what we want, but what is the explanation of this behavior? STM is
> designed to be optimistic, not blocking. So, does it means that the "value"
> is evaluated at "commit-time"?
> Do you know some problems that are related or do you know some works that
> can be useful at this subject?

STM's interface is lazy; so you have to tell Haskell when to evaluate
computationally expensive thunks, otherwise it will wait till the last possible
moment.  This is a common trip up point for concurrency programming.  Don
Stewart wrote strict-concurrency, which is a strict version of MVars and Chans,
though I don't see a strict STM class.


More information about the Haskell-Cafe mailing list