[Haskell-cafe] Re: Collections

Thomas Conway drtomc at gmail.com
Fri Jun 22 08:24:38 EDT 2007

On 6/22/07, apfelmus <apfelmus at quantentunnel.de> wrote:
> I guess you have considered Software Transactional Memory for atomic
> operations?
>    http://research.microsoft.com/~simonpj/papers/stm/index.htm
> Also, write-once-read-many data structures (like lazy evaluation uses
> them all the time) are probably very easy to get locked correctly.

STM was *the* justification to the mgt for letting me use Haskell
rather than C++. :-)

However, you do need to take care, because in this context it would be
easy to end up creating great big transactions which conflict with one
another, which quite aside from wasting CPU on retries, can in extreme
cases lead to starvation. A bit like laziness, STM is fantastic for
correctness, but can be a bit obtuse for performance. With that
proviso, I think STM is better than sliced bread.[*]

Incidentally, I read Herlihy's papers on lock free data structures
early on in my work on parallelism and concurrency for Mercury in the
mid 90's. What a shame I didn't have the wit to understand them
properly at the time, or Mercury might have had STM 10 years ago. :-)

[*] People who know me well, would realize that since I bake my own
bread and slice it with a bread-knife myself, comparison to sliced
bread may be faint praise. It isn't.
Dr Thomas Conway
drtomc at gmail.com

Silence is the perfectest herald of joy:
I were but little happy, if I could say how much.

More information about the Haskell-Cafe mailing list