A transactional locking implementation for C++. Based on basic ideas from
- Transactional Locking II
- Dave Dice, Ori Shalev, and Nir Shavit
this simple variation uses per-object locks and a monadic interface to build a top-down stack allocated splay tree to maintain an access set and attempts locks in address order.
See synopsis.hpp
for the API.