xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
xrpld
app
main
LoadManager.h
1
#pragma once
2
3
#include <xrpl/beast/utility/Journal.h>
4
5
#include <
chrono
>
6
#include <
condition_variable
>
7
#include <
memory
>
8
#include <
mutex
>
9
#include <
thread
>
10
11
namespace
xrpl
{
12
13
class
Application
;
14
27
class
LoadManager
28
{
29
LoadManager
(
Application
& app,
beast::Journal
journal);
30
31
public
:
32
LoadManager
() =
delete
;
33
LoadManager
(
LoadManager
const
&) =
delete
;
34
LoadManager
&
35
operator=
(
LoadManager
const
&) =
delete
;
36
42
~LoadManager
();
43
53
// VFALCO NOTE it seems that the stall detector has an "armed" state
54
// to prevent it from going off during program startup if
55
// there's a lengthy initialization operation taking place?
56
//
57
void
58
activateStallDetector
();
59
66
void
67
heartbeat
();
68
69
//--------------------------------------------------------------------------
70
71
void
72
start
();
73
74
void
75
stop
();
76
77
private
:
78
void
79
run
();
80
81
private
:
82
Application
&
app_
;
83
beast::Journal
const
journal_
;
84
85
std::thread
thread_
;
86
std::mutex
mutex_
;
// Guards lastHeartbeat_, armed_, cv_
87
std::condition_variable
cv_
;
88
bool
stop_
=
false
;
89
90
// Detect server stalls
91
std::chrono::steady_clock::time_point
lastHeartbeat_
;
92
bool
armed_
;
93
94
friend
std::unique_ptr<LoadManager>
95
makeLoadManager
(
Application
& app,
beast::Journal
journal);
96
};
97
98
std::unique_ptr<LoadManager>
99
makeLoadManager
(
Application
& app,
beast::Journal
journal);
100
101
}
// namespace xrpl
chrono
beast::Journal
A generic endpoint for log messages.
Definition
Journal.h:44
xrpl::Application
Definition
Application.h:94
xrpl::LoadManager::LoadManager
LoadManager(Application &app, beast::Journal journal)
Definition
LoadManager.cpp:22
xrpl::LoadManager::lastHeartbeat_
std::chrono::steady_clock::time_point lastHeartbeat_
Definition
LoadManager.h:91
xrpl::LoadManager::run
void run()
Definition
LoadManager.cpp:88
xrpl::LoadManager::cv_
std::condition_variable cv_
Definition
LoadManager.h:87
xrpl::LoadManager::LoadManager
LoadManager(LoadManager const &)=delete
xrpl::LoadManager::journal_
beast::Journal const journal_
Definition
LoadManager.h:83
xrpl::LoadManager::makeLoadManager
friend std::unique_ptr< LoadManager > makeLoadManager(Application &app, beast::Journal journal)
Definition
LoadManager.cpp:177
xrpl::LoadManager::stop
void stop()
Definition
LoadManager.cpp:70
xrpl::LoadManager::stop_
bool stop_
Definition
LoadManager.h:88
xrpl::LoadManager::thread_
std::thread thread_
Definition
LoadManager.h:85
xrpl::LoadManager::operator=
LoadManager & operator=(LoadManager const &)=delete
xrpl::LoadManager::~LoadManager
~LoadManager()
Destroy the manager.
Definition
LoadManager.cpp:27
xrpl::LoadManager::mutex_
std::mutex mutex_
Definition
LoadManager.h:86
xrpl::LoadManager::heartbeat
void heartbeat()
Reset the stall detection timer.
Definition
LoadManager.cpp:51
xrpl::LoadManager::start
void start()
Definition
LoadManager.cpp:61
xrpl::LoadManager::armed_
bool armed_
Definition
LoadManager.h:92
xrpl::LoadManager::activateStallDetector
void activateStallDetector()
Turn on stall detection.
Definition
LoadManager.cpp:43
xrpl::LoadManager::LoadManager
LoadManager()=delete
xrpl::LoadManager::app_
Application & app_
Definition
LoadManager.h:82
condition_variable
memory
mutex
xrpl
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
Definition
algorithm.h:5
xrpl::makeLoadManager
std::unique_ptr< LoadManager > makeLoadManager(Application &app, beast::Journal journal)
Definition
LoadManager.cpp:177
thread
std::unique_ptr
Generated by
1.17.0