5#ifndef ATHENAMPTOOLS_SHAREDHIVEEVTQUEUECONSUMER_H
6#define ATHENAMPTOOLS_SHAREDHIVEEVTQUEUECONSUMER_H
11#include "GaudiKernel/IScheduler.h"
12#include "GaudiKernel/IEvtSelector.h"
26 ,
const std::string& name
27 ,
const IInterface* parent);
32 virtual StatusCode
finalize()
override;
43 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
bootstrap_func()
override;
44 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
exec_func()
override;
45 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
fin_func()
override;
58 this,
"EventsBeforeFork", 0,
59 "The number of events before forking the workers. The default is 0."};
63 "Perform extra debugging if true. The default is false."};
66 this,
"UseSharedWriter",
false,
67 "Use SharedWriter to merge worker outputs on-the-fly if true. The default is false."};
Abstract interface for sharing data.
Abstract interface for seeking for an event selector.
virtual void reportSubprocessStatuses() override
Gaudi::Property< bool > m_debug
Gaudi::Property< int > m_nEventsBeforeFork
virtual StatusCode exec ATLAS_NOT_THREAD_SAFE() override
virtual StatusCode initialize() override
ServiceHandle< IChronoStatSvc > m_chronoStatSvc
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > fin_func() override
virtual StatusCode wait_once ATLAS_NOT_THREAD_SAFE(pid_t &pid) override
virtual void subProcessLogs(std::vector< std::string > &) override
AthenaInterprocess::SharedQueue * m_sharedEventQueue
Gaudi::Property< bool > m_useSharedWriter
SmartIF< IEvtSelectorSeek > m_evtSelSeek
SmartIF< IDataShare > m_dataShare
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > exec_func() override
std::map< pid_t, int > m_nProcessedEvents
std::unique_ptr< AthenaInterprocess::SharedQueue > m_sharedRankQueue
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > bootstrap_func() override
virtual ~SharedHiveEvtQueueConsumer() override
std::queue< pid_t > m_finQueue
IEvtSelector::Context * m_evtContext
int decodeProcessResult ATLAS_NOT_THREAD_SAFE(const AthenaInterprocess::ProcessResult *presult, bool doFinalize)
virtual StatusCode finalize() override
SmartIF< IScheduler > m_schedulerSvc
virtual int makePool ATLAS_NOT_THREAD_SAFE(int maxevt, int nprocs, const std::string &topdir) override
SharedHiveEvtQueueConsumer(const std::string &type, const std::string &name, const IInterface *parent)