для такого случая лучше через атомарное переключение указателя
Слышал о том, что лучше избегать использования подобных вещей. Если только прямо очень нужно и/или используется для разработки примитива синхронизации. Вроде как даже в Core Guidelines что-то подобное было, но не уверен