Why use atomics if you don't need them? There really should just be two different shared pointer types.