kirancodes.me
To Proof Maintenance & Beyond!

Library abstraction for C/C++ concurrency

Mark Batty, Mike Dodds, Alexey Gotsman

Abstract

When constructing complex concurrent systems, abstraction is vital: programmers should be able to reason about concurrent libraries in terms of abstract specifications that hide the implementation details. Relaxed memory models present substantial challenges in this respect, as libraries need not provide sequentially consistent abstractions: to avoid unnecessary synchronisation, they may allow clients to observe relaxed memory effects, and library specifications must capture these.

Related papers