Composable memory transactions
Simon Peyton Jones
Writing concurrent programs is notoriously difficult, and is of
increasing practical importance. A particular source of concern is
that even correctly-implemented concurrency abstractions cannot be
composed together to form larger abstractions. In this paper we
present a new concurrency model, based on transactional memory,
that offers far richer composition. All the usual benefits of
transactional memory are present (e.g. freedom from deadlock), but in
addition we describe new modular forms of blocking and
choice that have been inaccessible in earlier work.
Those of you who have been to earlier talks by Tim Harris and Kier
Fraser will already know quite a bit about transactional memory, so
I'll go fairly quickly over the basics. Haskell turns out to be a
particularly fruitful laboratory in which to explore STM, and I'll
concentrate on the new support we have developed for composable
transactions.
This is a presentation of work in collaboration with Tim Harris, Simon
Marlow, and Maurice Herlihy.
|