Writing concurrent programs is notoriously difficult, and is of increasing practical importance. A particular source of concern is n correctly-implemented concurrency abstractions cannot sed 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.
Tim Harris, Simon Marlow, Simon L. Peyton Jones, M