Brief Announcement: On Implementing Software Transactional Memory in the C++ Memory Model
Matthew Rodriguez, Michael Spear · 2020
High-performance software transactional memory (STM) implementations rely on nuanced use of synchronization variables to coordinate speculative accesses to program data. We discuss some consequences of the C++ memory model on STM, identify an easy-to-fix implementation error, and describe an unavoidable formal race condition that occurs in an important class of STM algorithms.