TimeoutAlg Node1 TimeoutAlg - m_timeout - m_stop_thread - m_timeoutProp - m_checkInterval - m_dumpState - m_abort + initialize() + execute() + stop() + handle() - timeoutThread() - handleTimeout() * m_timeoutProp * m_checkInterval * m_dumpState * m_abort Node2 extends< AthReentrantAlgorithm, IIncidentListener > Node2->Node1 Node3 Athena::TimeoutMaster # setTimeout() # resetTimeout() # TimeoutMaster() # TimeoutMaster() # operator=() Node3->Node1 Node4 std::atomic< bool > + ptr Node4->Node1 -m_stopped Node5 std::mutex Node5->Node1 -m_handleMutex Node6 std::thread Node6->Node1 -ATLAS_THREAD_SAFE Node7 SG::SlotSpecificObj < clock_t::time_point > + SlotSpecificObj() + SlotSpecificObj() + get() + get() + get() + get() + operator*() + operator*() + operator->() + operator->() + begin() + begin() + end() + end() Node7->Node1 -ATLAS_THREAD_SAFE Node8 std::vector< clock _t::time_point > + elements Node8->Node7 -m_slots