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