Andrey Glebov
_Shared_ptr_spin_lock это для старых функций atomic*(std::shared_ptr<...> *...)
в c++20 добавили настоящую специализацию std::atomic<std::shared_ptr<T>>.
она ниже по файлу <memory> у них.
лучше она тем, что НЕ использует глобальный spinlock, хотя реализация всё-равно не lock-free (вроде из-за того, что не везде есть double-compare-and-exchange, но тут могу ошибаться)
я правильно понял, что суть в том, что такая инструкция нужна чтобы не получить гонку с указатель+счетчик?