There are spinlock implementations that use memory_order_acquire for std::atomic<T>::exchange. A release barrier is used for the unlock while an acquire is used for locking. Given that exchange is a read + modify + write operation, I'm trying to understand why that is valid as opposed to using memory_order_acqrel?
Aucun commentaire:
Enregistrer un commentaire