We have atomic access to shared_ptrs but I cannot see how to atomically reset them: what am I missing?
shared_ptr
You can just use atomic_exchange with a default constructed shared_ptr:
atomic_exchange
atomic_exchange(&ptr, {});