Атомный обмен для умных указателей на x86 / x86-64 - PullRequest
0 голосов
/ 02 декабря 2018

Возможно ли реализовать атомарный обмен для интеллектуальных указателей на x86 / x86-64 без использования транзакционной памяти.Особенно интересует атомарный обмен для shared_ptr.

На современных процессорах есть инструкции CMPXCHG8B и CMPXCHG16B.Могут ли они быть использованы для реализации атомарного обмена для shared_ptr?

1 Ответ

0 голосов
/ 21 февраля 2019

Я не думаю, что это возможно для shared_ptr, поскольку вам нужно изменить сам указатель и счетчики ссылок старого и нового объекта в одной атомарной операции

...