C++ memory model

Doug Lea dl at cs.oswego.edu
Wed Feb 23 00:34:16 GMT 2005


I don't have any fundamental disagreements, but maybe a difference
in approach. Think food chain. The lowest layer is the stuff needed
so that you can build higher abstractions. So you need some semantics
for "volatile", promises about ordering guarantees, lack of unexpected
writes, basic atomics, and access to underlying underlying OS services.
Modulo issues like type/thin-air saftey described by Hans last
month, I think the general nature of this part is a known quantity.
(Although still a LOT of work to carry out.)

I do think that it would be great for you (and others) to put
together proposals for higher layers so that we can contemplate
exactly what is needed underneath. My expectation is that that low-level
ordering, read/write, etc rules stay relatively constant across
different high-level abstractions, but I'm always happy to be surprised.

-Doug






More information about the cpp-threads mailing list