EvtRangeScatterer Node1 EvtRangeScatterer - m_processorChannel - m_eventRangeChannel - m_doCaching + EvtRangeScatterer() + ~EvtRangeScatterer() + initialize() + finalize() + ATLAS_NOT_THREAD_SAFE() + ATLAS_NOT_THREAD_SAFE() + subProcessLogs() + generateOutputReport() + bootstrap_func() + exec_func() + fin_func() - EvtRangeScatterer() - EvtRangeScatterer() - operator=() - trimRangeStrings() - getNewRangeRequest() - pollFailedPidQueue() Node2 AthenaMPToolBase # m_nprocs # m_evtSelector # m_isPileup + AthenaMPToolBase() + ~AthenaMPToolBase() + initialize() + finalize() + ATLAS_NOT_THREAD_SAFE() + reportSubprocessStatuses() + generateOutputReport() + useFdsRegistry() + setRandString() + killChildren() + bootstrap_func() + exec_func() + fin_func() # ATLAS_NOT_THREAD_SAFE() # redirectLog() # updateIoReg() # fmterror() # reopenFds() # handleSavedPfc() # waitForSignal() # evtSelector() - AthenaMPToolBase() - AthenaMPToolBase() - operator=() - reopenFd() Node2->Node1 Node3 AthAlgTool + AthAlgTool() + ~AthAlgTool() - AthAlgTool() - AthAlgTool() - operator=() Node3->Node2 Node10 IAthenaMPTool + ATLAS_NOT_THREAD_SAFE() + ATLAS_NOT_THREAD_SAFE() + ATLAS_NOT_THREAD_SAFE() + reportSubprocessStatuses() + subProcessLogs() + generateOutputReport() + useFdsRegistry() + setRandString() + killChildren() + interfaceID() Node10->Node2 Node12 AthenaInterprocess ::IMessageDecoder + ~IMessageDecoder() + operator() Node12->Node2 Node13 ServiceHandle< IIoComponent Mgr > Node13->Node2 #m_ioMgr Node14 AthenaInterprocess ::ProcessGroup - m_nprocs - m_pgid - m_processesCreated + ProcessGroup() + ~ProcessGroup() + ATLAS_NOT_THREAD_SAFE() + ATLAS_NOT_THREAD_SAFE() + ATLAS_NOT_THREAD_SAFE() + wait_once() + pullOneResult() + getGroupID() + getChildren() + getStatuses() - ATLAS_NOT_THREAD_SAFE() Node14->Node2 #m_processGroup Node23 ServiceHandle< IAppMgrUI > Node23->Node2 #m_appMgr Node24 ServiceHandle< IEventProcessor > Node24->Node2 #m_evtProcessor Node29 std::map< pid_t, std ::string > + keys Node29->Node1 -m_pid2RangeID