| The Gaudi Framework v32r1 (f65d50dc)

LockedChrono.h
Go to the documentation of this file.
1 #ifndef GAUDI_LOCKEDCHRONO_H
2 #define GAUDI_LOCKEDCHRONO_H 1
3 // ===========================================================================
4 // Include files
5 // ===========================================================================
6 // GaudiKernel
7 // ===========================================================================
8 #include "GaudiKernel/ChronoEntity.h"
9 // ===========================================================================
10 namespace Gaudi {
11 // =========================================================================
12 namespace Utils {
13 // =======================================================================
50 class LockedChrono {
51 public:
52 // ======================================================================
54 LockedChrono( ChronoEntity& c, bool& lock ) : m_timer( c ), m_locker( lock ) {
55 if ( !lock ) {
56 m_timer.start();
57 m_locker = true;
58 m_locked = true;
59 }
60 }
62 ~LockedChrono() {
63 if ( m_locked ) {
64 m_timer.stop();
65 m_locker = false;
66 }
67 }
68 // ======================================================================
70 LockedChrono() = delete;
71 // ======================================================================
72 private:
73 // ======================================================================
75 ChronoEntity& m_timer; // the actual timer
77 bool& m_locker; // the actual locker
79 bool m_locked = false; // locked ?
80 // ======================================================================
81 };
82 // ========================================================================
83 } // namespace Utils
84 // ==========================================================================
85 } // end of namespace Gaudi
86 // ============================================================================
87 // The END
88 // ============================================================================
89 #endif // GAUDI_LOCKEDCHRONO_H
gaudirun.c
c
Definition: gaudirun.py:487
ChronoEntity
a small helper class for implementation of ChronoStatSvc service, It also could be used as some local...
Definition: ChronoEntity.h:21
ChronoEntity::start
IChronoSvc::ChronoStatus start()
start the current chrono
Definition: ChronoEntity.cpp:46
Gaudi::Utils::LockedChrono::m_timer
ChronoEntity & m_timer
the actual timer
Definition: LockedChrono.h:75
Gaudi::Utils::LockedChrono::LockedChrono
LockedChrono()=delete
no default constructor
Gaudi::Utils::LockedChrono::m_locker
bool & m_locker
the actual locker
Definition: LockedChrono.h:77
Gaudi::Utils::LockedChrono::LockedChrono
LockedChrono(ChronoEntity &c, bool &lock)
constructor from the actual timer: start the timer
Definition: LockedChrono.h:54
Gaudi::Utils::LockedChrono::m_locked
bool m_locked
locked ?
Definition: LockedChrono.h:79
Gaudi::Utils::LockedChrono
Helper object, useful for measurement of CPU-performance of highly-recursive structures,...
Definition: LockedChrono.h:50
ChronoEntity::stop
IChronoSvc::ChronoStatus stop()
stop the chrono
Definition: ChronoEntity.cpp:61
ChronoEntity.h
Gaudi
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
Gaudi::Utils::LockedChrono::~LockedChrono
~LockedChrono()
destructor:
Definition: LockedChrono.h:62