shared_ptr<void>::reset() 是无锁的吗?

Is shared_ptr<void>::reset() lock-free?

想象一下:

// SECTION A
MyClass* object = new MyClass();
std::shared_ptr<void> sharedObject;

// SECTION B (sharedObject is empty)
sharedObject.reset(object);

对于一个空的 sharedObject,B 部分是无锁的吗?还是取决于实施?

这取决于实现。

一些建议:

  1. Overhead and implementation of using shared_ptr