diff options
Diffstat (limited to 'src/mongo/embedded/periodic_runner_embedded.cpp')
-rw-r--r-- | src/mongo/embedded/periodic_runner_embedded.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/mongo/embedded/periodic_runner_embedded.cpp b/src/mongo/embedded/periodic_runner_embedded.cpp index 41ae8a49e93..68c94fa541d 100644 --- a/src/mongo/embedded/periodic_runner_embedded.cpp +++ b/src/mongo/embedded/periodic_runner_embedded.cpp @@ -52,14 +52,14 @@ PeriodicRunnerEmbedded::PeriodicRunnerEmbedded(ServiceContext* svc, ClockSource* auto PeriodicRunnerEmbedded::makeJob(PeriodicJob job) -> JobAnchor { auto impl = std::make_shared<PeriodicJobImpl>(std::move(job), this->_clockSource, this); - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> lk(_mutex); _jobs.push_back(impl); std::push_heap(_jobs.begin(), _jobs.end(), PeriodicJobSorter()); return JobAnchor(impl); } bool PeriodicRunnerEmbedded::tryPump() { - stdx::unique_lock<stdx::mutex> lock(_mutex, stdx::try_to_lock); + stdx::unique_lock<Latch> lock(_mutex, stdx::try_to_lock); if (!lock.owns_lock()) return false; @@ -71,7 +71,7 @@ bool PeriodicRunnerEmbedded::tryPump() { PeriodicJobImpl::ExecutionStatus jobExecStatus; { - stdx::lock_guard<stdx::mutex> jobLock(job._mutex); + stdx::lock_guard<Latch> jobLock(job._mutex); jobExecStatus = job._execStatus; } @@ -104,7 +104,7 @@ bool PeriodicRunnerEmbedded::tryPump() { // only variable that can be changed from other threads. PeriodicJobImpl::ExecutionStatus jobExecStatus; { - stdx::lock_guard<stdx::mutex> jobLock(job._mutex); + stdx::lock_guard<Latch> jobLock(job._mutex); jobExecStatus = job._execStatus; } @@ -142,19 +142,19 @@ PeriodicRunnerEmbedded::PeriodicJobImpl::PeriodicJobImpl(PeriodicJob job, : _job(std::move(job)), _clockSource(source), _periodicRunner(runner) {} void PeriodicRunnerEmbedded::PeriodicJobImpl::start() { - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> lk(_mutex); invariant(_execStatus == PeriodicJobImpl::ExecutionStatus::kNotScheduled); _execStatus = PeriodicJobImpl::ExecutionStatus::kRunning; } void PeriodicRunnerEmbedded::PeriodicJobImpl::pause() { - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> lk(_mutex); invariant(_execStatus == PeriodicJobImpl::ExecutionStatus::kRunning); _execStatus = PeriodicJobImpl::ExecutionStatus::kPaused; } void PeriodicRunnerEmbedded::PeriodicJobImpl::resume() { - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> lk(_mutex); invariant(_execStatus == PeriodicJobImpl::ExecutionStatus::kPaused); _execStatus = PeriodicJobImpl::ExecutionStatus::kRunning; } @@ -162,21 +162,21 @@ void PeriodicRunnerEmbedded::PeriodicJobImpl::resume() { void PeriodicRunnerEmbedded::PeriodicJobImpl::stop() { // Also take the master lock, the job lock is not held while executing the job and we must make // sure the user can invalidate it after this call. - stdx::lock_guard<stdx::mutex> masterLock(_periodicRunner->_mutex); - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> masterLock(_periodicRunner->_mutex); + stdx::lock_guard<Latch> lk(_mutex); if (isAlive(lk)) { _stopWithMasterAndJobLock(masterLock, lk); } } Milliseconds PeriodicRunnerEmbedded::PeriodicJobImpl::getPeriod() { - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> lk(_mutex); return _job.interval; } void PeriodicRunnerEmbedded::PeriodicJobImpl::setPeriod(Milliseconds ms) { - stdx::lock_guard<stdx::mutex> masterLk(_periodicRunner->_mutex); - stdx::lock_guard<stdx::mutex> lk(_mutex); + stdx::lock_guard<Latch> masterLk(_periodicRunner->_mutex); + stdx::lock_guard<Latch> lk(_mutex); _job.interval = ms; |