Я думаю, что C ++ еще не покрывает какую-либо память транзакций, но все же TSX может как-то уместиться, используя ", как будто rule", в то, что регулируется моделью памяти C ++.
Итак, что происходит при успешной операции HLE или успешной RTM-транзакции?
Сказать «гонка данных есть, но все в порядке» не очень полезно, так как она не проясняет, что означает «хорошо».
С HLE, вероятно, это можно увидеть как «предыдущая операция происходит перед последующей операцией. Как будто секция все еще охранялась заблокированной блокировкой».
Что такое с RTM? Так как здесь нет даже элидированной блокировки, только (потенциально не атомарные c) операции с памятью, которые могут быть загружены, сохранены как, так и без операции. Что синхронизируется с чем? Что происходит перед чем?