Clearly, sequential consistent atomic operations differ in their valid observable behavior from acquire-release only operations in a valid C++ program. Definitions are given in the C++ standard (since C++11) or here.
However, I have never come across a real-world example of an algorithm or a data structure that where acquire-release semantics is insufficient and sequential consistency is needed.
What would be an practical example of a real world algorithm or data structure, where sequential consistency is needed and acquire-release memory order is not enough?
Note, that even std::mutex does not guarantee sequential consistency.
Aucun commentaire:
Enregistrer un commentaire