Context-oriented software transactional memory in common lisp

Pascal Costanza, Charlotte Herzeel, Theo D'Hondt
2009 Proceedings of the 5th symposium on Dynamic languages - DLS '09  
Software transactional memory (STM) is a promising approach for coordinating concurrent threads, for which many implementation strategies are currently being researched. Although some first steps exist to ease experimenting with different strategies, this still remains a relatively complex and cumbersome task. The reason is that software transactions require STM-specific dynamic crosscutting adaptations, but this is not accounted for in current STM implementations. This paper presents CSTM, an
more » ... presents CSTM, an STM framework based on Context-oriented Prorgamming, in which transactions are modelled as dynamically scoped layer activations. It enables expressing transactional variable accesses as user-defined crosscutting concerns, without requiring invasive changes in the rest of a program. This paper presents a proof-of-concept implementation based on ContextL for Common Lisp, along with example STM strategies and preliminary benchmarks, and introduces some of ContextL's unique features for context-dependent variable accesses.
doi:10.1145/1640134.1640144 dblp:conf/dls/CostanzaHD09 fatcat:b2mfqyivxfeyvhf2vukky2dlby