summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Noma <gregory.noma@gmail.com>2023-01-31 15:11:53 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-01-31 16:21:53 +0000
commitfb5b99865843482a181993d761d9cf176848000b (patch)
tree9c9fe5152fcf4f9aef5829ebcebd71215bf718ee
parentbdf654dd793e87874ed062351a09d605414e47ef (diff)
downloadmongo-fb5b99865843482a181993d761d9cf176848000b.tar.gz
SERVER-73312 Pass ticket holders to monitor
-rw-r--r--src/mongo/db/storage/ticketholder_monitor.cpp9
-rw-r--r--src/mongo/db/storage/ticketholder_monitor.h10
2 files changed, 16 insertions, 3 deletions
diff --git a/src/mongo/db/storage/ticketholder_monitor.cpp b/src/mongo/db/storage/ticketholder_monitor.cpp
index 1ebef4da644..d77c6592ff7 100644
--- a/src/mongo/db/storage/ticketholder_monitor.cpp
+++ b/src/mongo/db/storage/ticketholder_monitor.cpp
@@ -31,8 +31,13 @@
namespace mongo {
-TicketHolderMonitor::TicketHolderMonitor(ServiceContext* svcCtx, Milliseconds interval)
- : _job(svcCtx->getPeriodicRunner()->makeJob(PeriodicRunner::PeriodicJob{
+TicketHolderMonitor::TicketHolderMonitor(ServiceContext* svcCtx,
+ TicketHolder* readTicketHolder,
+ TicketHolder* writeTicketHolder,
+ Milliseconds interval)
+ : _readTicketHolder(readTicketHolder),
+ _writeTicketHolder(writeTicketHolder),
+ _job(svcCtx->getPeriodicRunner()->makeJob(PeriodicRunner::PeriodicJob{
"TicketHolderMonitor", [this](Client* client) { _run(client); }, interval})) {}
void TicketHolderMonitor::start() {
diff --git a/src/mongo/db/storage/ticketholder_monitor.h b/src/mongo/db/storage/ticketholder_monitor.h
index 7cc545a4b29..6abb5a6d25a 100644
--- a/src/mongo/db/storage/ticketholder_monitor.h
+++ b/src/mongo/db/storage/ticketholder_monitor.h
@@ -30,19 +30,27 @@
#pragma once
#include "mongo/db/service_context.h"
+#include "mongo/util/concurrency/ticketholder.h"
#include "mongo/util/periodic_runner.h"
namespace mongo {
class TicketHolderMonitor {
public:
- explicit TicketHolderMonitor(ServiceContext*, Milliseconds interval);
+ TicketHolderMonitor(ServiceContext* svcCtx,
+ TicketHolder* readTicketHolder,
+ TicketHolder* writeTicketHolder,
+ Milliseconds interval);
virtual ~TicketHolderMonitor(){};
void start();
protected:
+ TicketHolder* _readTicketHolder;
+ TicketHolder* _writeTicketHolder;
+
+private:
virtual void _run(Client*) = 0;
PeriodicJobAnchor _job;