summaryrefslogtreecommitdiff
path: root/src/mongo/util/periodic_runner_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/util/periodic_runner_impl.cpp')
-rw-r--r--src/mongo/util/periodic_runner_impl.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/util/periodic_runner_impl.cpp b/src/mongo/util/periodic_runner_impl.cpp
index 0be6fba57a7..2d0c80ddeb5 100644
--- a/src/mongo/util/periodic_runner_impl.cpp
+++ b/src/mongo/util/periodic_runner_impl.cpp
@@ -159,6 +159,7 @@ void PeriodicRunnerImpl::PeriodicJobImpl::stop() {
_execStatus = PeriodicJobImpl::ExecutionStatus::CANCELED;
}
+ invariant(_thread.joinable());
_condvar.notify_one();
_thread.join();
}
@@ -167,7 +168,6 @@ bool PeriodicRunnerImpl::PeriodicJobImpl::isAlive() {
return _execStatus == ExecutionStatus::RUNNING || _execStatus == ExecutionStatus::PAUSED;
}
-
namespace {
template <typename T>
@@ -189,6 +189,11 @@ void PeriodicRunnerImpl::PeriodicJobHandleImpl::start() {
job->start();
}
+void PeriodicRunnerImpl::PeriodicJobHandleImpl::stop() {
+ auto job = lockAndAssertExists(_jobWeak, kPeriodicJobHandleLifetimeErrMsg);
+ job->stop();
+}
+
void PeriodicRunnerImpl::PeriodicJobHandleImpl::pause() {
auto job = lockAndAssertExists(_jobWeak, kPeriodicJobHandleLifetimeErrMsg);
job->pause();