Intra-thread dependency-ordered-before
6.9.2 [intro.multithread]

Created on 2010-08-10.00:00:00 last changed 96 months ago


Date: 2010-11-15.00:00:00

[Voted into the WP at the November, 2010 meeting as part of paper N3196.]

Date: 2010-08-15.00:00:00

Proposed resolution (August, 2010):

Change 6.9.2 [intro.multithread] paragraph 9 as follows:

An evaluation A is dependency-ordered before an evaluation B if

  • A performs a release operation on an atomic object M, and, on another thread, B performs a consume operation on M and reads a value written by any side effect in the release sequence headed by A, or

  • for some evaluation X, A is dependency-ordered before X and X carries a dependency to B.


Date: 2010-08-10.00:00:00
N3092 comment CA 15

The current draft has release/acquire synchronize-with edges only between a release on one thread and an acquire on a different thread, whereas the definition of dependency-ordered-before permits the release and consume to be on the same thread; it seems odd to permit the latter. (At the moment function arguments can't race or sync with each other, but they can be dependency ordered before each other.)

We don't currently have an example in which this makes a real difference, but for symmetry could suggest changing the definition of dependency-ordered-before in 6.9.2 [intro.multithread].

Date User Action Args
2014-03-03 00:00:00adminsetstatus: fdis -> c++11
2011-04-10 00:00:00adminsetmessages: + msg3283
2011-04-10 00:00:00adminsetstatus: review -> fdis
2010-10-18 00:00:00adminsetmessages: + msg3000
2010-08-10 00:00:00admincreate