5#ifndef ATHENAMPTOOLS_EVTRANGEPROCESSOR_H
6#define ATHENAMPTOOLS_EVTRANGEPROCESSOR_H
11#include "yampl/Exceptions.h"
29 ,
const std::string& name
30 ,
const IInterface* parent);
46 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
bootstrap_func()
override;
47 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
exec_func()
override;
48 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
fin_func()
override;
63 Gaudi::Property<int>
m_nEventsBeforeFork{
this,
"EventsBeforeFork", 0,
"Number of events before forking"};
66 Gaudi::Property<bool>
m_debug{
this,
"Debug",
false};
StatusCode setNewInputFile(const std::string &newFile)
std::string m_inpFile
Cached name of the input file. To avoid reopening.
std::deque< pid_t > m_finQueue
virtual StatusCode initialize() override
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > fin_func() override
Gaudi::Property< bool > m_debug
ServiceHandle< IChronoStatSvc > m_chronoStatSvc
void reportError(yampl::ISocket *socket, AthenaMPToolBase::ESRange_Status status)
virtual void subProcessLogs(std::vector< std::string > &) override
virtual StatusCode wait_once ATLAS_NOT_THREAD_SAFE(pid_t &pid) override
virtual void reportSubprocessStatuses() override
virtual int makePool ATLAS_NOT_THREAD_SAFE(int maxevt, int nprocs, const std::string &topdir) override
ServiceHandle< IIncidentSvc > m_incidentSvc
Gaudi::Property< std::string > m_channel2EvtSel
virtual StatusCode exec ATLAS_NOT_THREAD_SAFE() override
std::unique_ptr< AthenaInterprocess::SharedQueue > m_sharedRankQueue
std::map< pid_t, int > m_nProcessedEvents
int m_rankId
Each worker has its own unique RankID from the range (0,...,m_nprocs-1)
EvtRangeProcessor(const std::string &type, const std::string &name, const IInterface *parent)
virtual ~EvtRangeProcessor() override
Gaudi::Property< std::string > m_channel2Scatterer
AthenaInterprocess::SharedQueue * m_sharedFailedPidQueue
StatusCode startProcess ATLAS_NOT_THREAD_SAFE()
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > exec_func() override
virtual AthenaMP::AllWorkerOutputs_ptr generateOutputReport() override
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > bootstrap_func() override
Gaudi::Property< int > m_nEventsBeforeFork
std::map< pid_t, ProcessState > m_procStates
SmartIF< IEvtSelectorSeek > m_evtSeek
int m_activeWorkers
Keep track of the number of workers.
Abstract interface for seeking for an event selector.
std::unique_ptr< AllWorkerOutputs > AllWorkerOutputs_ptr