| The Gaudi Framework v27r1

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- File List
- File Members

StalledEventMonitor.h
Go to the documentation of this file.
1 /*
2 * StalledEventMonitor.h
3 *
4 * Created on: Apr 19, 2010
5 * Author: Marco Clemencic
6 */
7
8 #ifndef STALLEDEVENTMONITOR_H_
9 #define STALLEDEVENTMONITOR_H_
10
11 // Include files
12 #include "GaudiKernel/Service.h"
13 #include "GaudiKernel/IIncidentListener.h"
14 #include <memory>
15
16 // Forward declarations
17 class WatchdogThread;
18 class IIncidentSvc;
19
29 class StalledEventMonitor: public extends<Service,
30 IIncidentListener> {
31 public:
33 StalledEventMonitor(const std::string& name, ISvcLocator* svcLoc);
34
36 ~StalledEventMonitor() override = default;
37
40 StatusCode initialize() override;
41
43 StatusCode start() override;
44
46 void handle(const Incident& /* incident */) override;
47
49 StatusCode stop() override;
50
52 StatusCode finalize() override;
53
54 private:
56 unsigned int m_eventTimeout;
57
59 int m_maxTimeoutCount;
60
62 bool m_stackTrace;
63
65 std::unique_ptr<WatchdogThread> m_watchdog;
66
68 SmartIF<IIncidentSvc> m_incidentSvc;
69
70 };
71
72 #endif // STALLEDEVENTMONITOR_H_
SmartIF< IIncidentSvc >
ISvcLocator
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
StalledEventMonitor::stop
StatusCode stop() override
Stop the watchdog thread (after the event loop).
Definition: StalledEventMonitor.cpp:140
StalledEventMonitor::m_watchdog
std::unique_ptr< WatchdogThread > m_watchdog
Pointer to the watchdog thread that checks for the event timeout.
Definition: StalledEventMonitor.h:65
StalledEventMonitor::handle
void handle(const Incident &) override
Notify the watchdog thread for a new event.
Definition: StalledEventMonitor.cpp:135
StalledEventMonitor::~StalledEventMonitor
~StalledEventMonitor() override=default
Destructor.
StalledEventMonitor::m_stackTrace
bool m_stackTrace
Whether to print a stack-trace on timeout.
Definition: StalledEventMonitor.h:62
StalledEventMonitor::start
StatusCode start() override
Start the watchdog thread (before entering the event loop).
Definition: StalledEventMonitor.cpp:129
std::string
STL class.
Service.h
Service::name
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
StalledEventMonitor
Service that monitor the time taken by processing of single events using a separate thread...
Definition: StalledEventMonitor.h:29
StalledEventMonitor::m_incidentSvc
SmartIF< IIncidentSvc > m_incidentSvc
Pointer to the incident service.
Definition: StalledEventMonitor.h:68
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StalledEventMonitor::m_maxTimeoutCount
int m_maxTimeoutCount
Number timeouts before aborting the execution (0 means never abort).
Definition: StalledEventMonitor.h:59
StalledEventMonitor::m_eventTimeout
unsigned int m_eventTimeout
Number of seconds allowed to process a single event.
Definition: StalledEventMonitor.h:56
StalledEventMonitor::StalledEventMonitor
StalledEventMonitor(const std::string &name, ISvcLocator *svcLoc)
Constructor.
Definition: StalledEventMonitor.cpp:84
StalledEventMonitor::initialize
StatusCode initialize() override
Initialization of the service.
Definition: StalledEventMonitor.cpp:98
std::unique_ptr< WatchdogThread >
WatchdogThread
Simple class for asynchronous check of time-out.
Definition: WatchdogThread.h:25
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
Incident
Base class for all Incidents (computing events).
Definition: Incident.h:17
IIncidentListener.h
StalledEventMonitor::finalize
StatusCode finalize() override
Finalization of the service.
Definition: StalledEventMonitor.cpp:146
IIncidentSvc
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:21