Title
"Stronger" memory ordering
Status
resolved
Section
[depr.util.smartptr.shared.atomic] [atomics.types.operations.req]
Submitter
JF Bastien

Created on 2014-10-08.00:00:00 last changed 97 months ago

Messages

Date: 2016-11-15.00:00:00

[ 2016-11-12, Issaquah ]

Resolved by P0418R2

Date: 2014-11-03.20:00:17

[ 2014-11 Urbana ]

Move to SG1.

Date: 2014-10-08.00:00:00

The definitions of compare and exchange in [util.smartptr.shared.atomic] p32 and [atomics.types.operations.req] p20 state:

Requires: The failure argument shall not be memory_order_release nor memory_order_acq_rel. The failure argument shall be no stronger than the success argument.

The term "stronger" isn't defined by the standard.

It is hinted at by [atomics.types.operations.req] p21:

When only one memory_order argument is supplied, the value of success is order, and the value of failure is order except that a value of memory_order_acq_rel shall be replaced by the value memory_order_acquire and a value of memory_order_release shall be replaced by the value memory_order_relaxed.

Should the standard define a partial ordering for memory orders, where consume and acquire are incomparable with release?

History
Date User Action Args
2016-11-21 17:34:16adminsetmessages: + msg8677
2016-11-21 17:34:16adminsetstatus: open -> resolved
2015-03-22 18:20:19adminsetstatus: new -> open
2014-11-03 20:00:17adminsetmessages: + msg7164
2014-10-08 00:00:00admincreate