summaryrefslogtreecommitdiff
path: root/src/mongo/embedded/periodic_runner_embedded.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/embedded/periodic_runner_embedded.cpp')
-rw-r--r--src/mongo/embedded/periodic_runner_embedded.cpp24
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;