diff options
Diffstat (limited to 'src/mongo/util/periodic_runner_impl.cpp')
-rw-r--r-- | src/mongo/util/periodic_runner_impl.cpp | 7 |
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(); |