Athena::IRCUObject Node1 Athena::IRCUObject - m_grace - m_oldGrace - m_nold + IRCUObject() + IRCUObject() + IRCUObject() + IRCUObject() + operator=() + operator=() + ~IRCUObject() + quiescent() + quiescent() # endGrace() # setGrace() # mutex() # clearAll() # clearOld() # makeOld() - endGrace() Node2 std::atomic< bool > + ptr Node2->Node1 -m_dirty Node3 Athena::IRCUSvc + DeclareInterfaceID() + newrcu() + add() + remove() + getNumSlots() Node3->Node1 -m_svc Node4 IInterface Node4->Node3 Node5 std::mutex Node5->Node1 -m_mutex