ATLAS Offline Software
Loading...
Searching...
No Matches
G4RunTool::StateSynchronization Struct Reference
Collaboration diagram for G4RunTool::StateSynchronization:

Public Types

enum class  Status { Created , BeginRun , AthenaFinalize , Size }

Public Member Functions

void SetStatus (const Status &)
void WaitStatus (const Status &)

Public Attributes

Status m_status {Status::Created}
std::mutex m_mutex
std::condition_variable m_cv

Detailed Description

Definition at line 92 of file G4RunTool.h.

Member Enumeration Documentation

◆ Status

Enumerator
Created 
BeginRun 
AthenaFinalize 
Size 

Definition at line 94 of file G4RunTool.h.

94 {
95 Created,
96 BeginRun,
97 AthenaFinalize,
98 Size
99 };

Member Function Documentation

◆ SetStatus()

void G4RunTool::StateSynchronization::SetStatus ( const Status & status)

Definition at line 77 of file G4RunTool.cxx.

77 {
78 {
79 std::scoped_lock lk(m_mutex);
81 }
82 m_cv.notify_all();
83}
status
Definition merge.py:16
std::condition_variable m_cv
Definition G4RunTool.h:104

◆ WaitStatus()

void G4RunTool::StateSynchronization::WaitStatus ( const Status & status)

Definition at line 85 of file G4RunTool.cxx.

85 {
86 std::unique_lock lk(m_mutex);
87 m_cv.wait(lk, [this, status]{ return m_status == status; });
88}

Member Data Documentation

◆ m_cv

std::condition_variable G4RunTool::StateSynchronization::m_cv

Definition at line 104 of file G4RunTool.h.

◆ m_mutex

std::mutex G4RunTool::StateSynchronization::m_mutex
mutable

Definition at line 103 of file G4RunTool.h.

◆ m_status

Status G4RunTool::StateSynchronization::m_status {Status::Created}

The documentation for this struct was generated from the following files: