How do you use std::atomic to implement rcu?