2008
DOI: 10.1145/1379022.1375591
|View full text |Cite
|
Sign up to set email alerts
|

Foundations of the C++ concurrency memory model

Abstract: Currently multi-threaded C or C++ programs combine a singlethreaded programming language with a separate threads library. This is not entirely sound [7].We describe an effort, currently nearing completion, to address these issues by explicitly providing semantics for threads in the next revision of the C++ standard. Our approach is similar to that recently followed by Java [25], in that, at least for a welldefined and interesting subset of the language, we give sequentially consistent semantics to programs tha… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
207
0

Year Published

2011
2011
2020
2020

Publication Types

Select...
7
2
1

Relationship

0
10

Authors

Journals

citations
Cited by 151 publications
(208 citation statements)
references
References 23 publications
1
207
0
Order By: Relevance
“…A data race occurs if two threads access the same memory location simultaneously, and at least one of them is a write operation [3]. Figure 1 is an example of a balance transfer function.…”
Section: A Races Atomicity Violations and Deadlocksmentioning
confidence: 99%
“…A data race occurs if two threads access the same memory location simultaneously, and at least one of them is a write operation [3]. Figure 1 is an example of a balance transfer function.…”
Section: A Races Atomicity Violations and Deadlocksmentioning
confidence: 99%
“…For example, in a 2008 version of its System Programming Guide, Intel states that "writes to the same location have a total order," but a 2011 version of the same document replaces this with "any two stores are seen in a consistent order by processors other than those performing the stores." Since many of the intricate interactions that can make seemingly reasonable memory ordering models backfire are still only being discovered, we would recommend following recent work on C++ and Java memory models for details [10,23].…”
Section: Ordering: Hard To Get Rightmentioning
confidence: 99%
“…But consensus has emerged that sequential consistency should be ensured at least for data-race free programs [4,38]. In most programming languages, data-race freedom cannot be checked precisely using static methods, and dynamic data-race detection remains the only alternative for eliminating surprising behaviors such as those described above.…”
Section: Race Freedom As a Correctness Criterionmentioning
confidence: 99%