lundi 5 janvier 2015

Are there cases where either an Acquire or Release barrier occurs by itself without the other matching barrier?

Is it necessary to always pair the Acquire and Release barriers? Are there any genuine cases where one may occur without the corresponding pair (including full memory barriers which satisfy both)? I know that the C++11 memory model states that such unpaired programs are not Data Race Free, but is this always the case?


For example, the linux kernel's documentation on memory barriers states:



An ACQUIRE operation should almost always be paired with a RELEASE operation.



Why does it say "almost always" and not "always"?


Aucun commentaire:

Enregistrer un commentaire