5#ifndef ATHENAMPTOOLS_SHAREDEVTQUEUEPROVIDER_H
6#define ATHENAMPTOOLS_SHAREDEVTQUEUEPROVIDER_H
9#include "GaudiKernel/IIncidentListener.h"
18 ,
const std::string& name
19 ,
const IInterface* parent);
31 virtual void handle(
const Incident& inc)
override;
34 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
bootstrap_func()
override;
35 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
exec_func()
override;
36 virtual std::unique_ptr<AthenaInterprocess::ScheduledWork>
fin_func()
override;
43 Gaudi::Property<bool>
m_useSharedReader{
this,
"UseSharedReader",
false,
"Use shared reader"};
44 Gaudi::Property<int>
m_nEventsBeforeFork{
this,
"EventsBeforeFork", 0,
"Number of events before forking"};
Abstract interface for sharing within an event stream.
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > bootstrap_func() override
int m_nEvtRequested
Max event received from AppMgr.
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > exec_func() override
SharedEvtQueueProvider(const std::string &type, const std::string &name, const IInterface *parent)
int m_nprocesses
We use this data member for adding negative numbers at the end of the event queue.
AthenaInterprocess::SharedQueue * m_sharedEventQueue
virtual ~SharedEvtQueueProvider() override
Gaudi::Property< int > m_nEventsBeforeFork
SharedEvtQueueProvider(const SharedEvtQueueProvider &)
virtual StatusCode exec ATLAS_NOT_THREAD_SAFE() override
SmartIF< IEventShare > m_evtShare
int m_nEvtCounted
The number of events this tool has counted itself in the input files.
Gaudi::Property< bool > m_useSharedReader
Gaudi::Property< int > m_nChunkSize
virtual void handle(const Incident &inc) override
virtual AthenaMP::AllWorkerOutputs_ptr generateOutputReport() override
int m_nChunkStart
The beginning of the current chunk.
SharedEvtQueueProvider & operator=(const SharedEvtQueueProvider &)
int m_nPositionInChunk
Position within the current chunk.
virtual void subProcessLogs(std::vector< std::string > &) override
virtual std::unique_ptr< AthenaInterprocess::ScheduledWork > fin_func() override
virtual int makePool ATLAS_NOT_THREAD_SAFE(int maxevt, int nprocs, const std::string &topdir) override
std::unique_ptr< AllWorkerOutputs > AllWorkerOutputs_ptr