Authors
Mark Batty, Scott Owens, Susmit Sarkar, Peter Sewell, Tjark Weber
Publication date
2011/1/26
Journal
ACM SIGPLAN Notices
Volume
46
Issue
1
Pages
55-66
Publisher
ACM
Description
Shared-memory concurrency in C and C++ is pervasive in systems programming, but has long been poorly defined. This motivated an ongoing shared effort by the standards committees to specify concurrent behaviour in the next versions of both languages. They aim to provide strong guarantees for race-free programs, together with new (but subtle) relaxed-memory atomic primitives for high-performance concurrent code. However, the current draft standards, while the result of careful deliberation, are not yet clear and rigorous definitions, and harbour substantial problems in their details.
In this paper we establish a mathematical (yet readable) semantics for C++ concurrency. We aim to capture the intent of the current (`Final Committee') Draft as closely as possible, but discuss changes that fix many of its problems. We prove that a proposed x86 implementation of the concurrency primitives is correct with respect to …
Total citations
201120122013201420152016201720182019202020212022202320241518302734385242533337443011
Scholar articles
M Batty, S Owens, S Sarkar, P Sewell, T Weber - ACM SIGPLAN Notices, 2011