Unlocking unique lock to prevent one bad agent stalling the rest
This commit is contained in:
@@ -171,6 +171,8 @@ TaskFuture DaggyRunnerTaskExecutor::execute(DAGRunID runID,
|
|||||||
exe_capacity->cores -= taskUsed.cores;
|
exe_capacity->cores -= taskUsed.cores;
|
||||||
exe_capacity->memoryMB -= taskUsed.memoryMB;
|
exe_capacity->memoryMB -= taskUsed.memoryMB;
|
||||||
|
|
||||||
|
lock.unlock();
|
||||||
|
|
||||||
std::stringstream ss;
|
std::stringstream ss;
|
||||||
ss << exe_runner << "/v1/task/" << runID << "/" << taskName;
|
ss << exe_runner << "/v1/task/" << runID << "/" << taskName;
|
||||||
auto url = ss.str();
|
auto url = ss.str();
|
||||||
@@ -194,7 +196,7 @@ TaskFuture DaggyRunnerTaskExecutor::execute(DAGRunID runID,
|
|||||||
|
|
||||||
auto fut = rt.fut;
|
auto fut = rt.fut;
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(rtGuard_);
|
std::lock_guard<std::mutex> rtLock(rtGuard_);
|
||||||
runningTasks_.emplace(std::make_pair(runID, taskName), std::move(rt));
|
runningTasks_.emplace(std::make_pair(runID, taskName), std::move(rt));
|
||||||
}
|
}
|
||||||
return fut;
|
return fut;
|
||||||
|
|||||||
Reference in New Issue
Block a user