From 854ca5be22cf7c23677cfa394c71a24521018eca Mon Sep 17 00:00:00 2001 From: Ian Roddis Date: Thu, 13 Jan 2022 10:49:09 -0400 Subject: [PATCH] Reducing the scope of a lock --- libdaggy/src/executors/task/ForkingTaskExecutor.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libdaggy/src/executors/task/ForkingTaskExecutor.cpp b/libdaggy/src/executors/task/ForkingTaskExecutor.cpp index 469693b..6a403a1 100644 --- a/libdaggy/src/executors/task/ForkingTaskExecutor.cpp +++ b/libdaggy/src/executors/task/ForkingTaskExecutor.cpp @@ -95,9 +95,10 @@ TaskFuture ForkingTaskExecutor::execute(DAGRunID runID, const Task &task) { std::string key = std::to_string(runID) + "_" + taskName; - std::lock_guard lock(taskControlsGuard_); + std::unique_lock lock(taskControlsGuard_); auto [it, ins] = taskControls_.emplace(key, true); - auto &running = it->second; + lock.unlock(); + auto &running = it->second; return tp_.addTask([this, task, taskName, &running, key]() { auto ret = this->runTask(task, running); std::lock_guard lock(this->taskControlsGuard_);