Athena::IRCUObject Node1 Athena::IRCUObject - m_mutex - m_svc - m_grace - m_oldGrace - m_nold - m_dirty + IRCUObject() + IRCUObject() + IRCUObject() + IRCUObject() + operator=() + operator=() + ~IRCUObject() + quiescent() + quiescent() # endGrace() # setGrace() # mutex() # clearAll() # clearOld() # makeOld() - endGrace() Node2 Athena::RCUObject< T > - m_objref - m_obj - m_garbage + RCUObject() + RCUObject() + RCUObject() + RCUObject() + RCUObject() + operator=() + operator=() + reader() + readerQuiesce() + readerQuiesce() + readerQuiesce() + updater() + updater() + updater() + discard() # discard() - clearAll() - clearOld() Node1->Node2