Skip to content
Snippets Groups Projects
Verified Commit bd334138 authored by Alberto Miranda's avatar Alberto Miranda :hotsprings:
Browse files

job_manager: Use std::shared_mutex instead of abt::shared_mutex

parent 41e22baf
No related branches found
No related tags found
1 merge request!57Resolve "New job_manager locks on `std::shared_mutex` instead of `abt::shared_mutex`"
Pipeline #3242 passed
...@@ -30,8 +30,6 @@ ...@@ -30,8 +30,6 @@
#include <utility> #include <utility>
#include <utils/utils.hpp> #include <utils/utils.hpp>
#include <unordered_map> #include <unordered_map>
#include <mutex>
#include <shared_mutex>
#include <tl/expected.hpp> #include <tl/expected.hpp>
#include <logger/logger.hpp> #include <logger/logger.hpp>
#include <abt_cxx/shared_mutex.hpp> #include <abt_cxx/shared_mutex.hpp>
...@@ -72,11 +70,11 @@ struct job_manager : scord::utils::singleton<job_manager> { ...@@ -72,11 +70,11 @@ struct job_manager : scord::utils::singleton<job_manager> {
create(admire::slurm_job_id slurm_id, admire::job::resources job_resources, create(admire::slurm_job_id slurm_id, admire::job::resources job_resources,
admire::job_requirements job_requirements) { admire::job_requirements job_requirements) {
abt::unique_lock lock(m_jobs_mutex);
static std::atomic_uint64_t current_id; static std::atomic_uint64_t current_id;
admire::job_id id = current_id++; admire::job_id id = current_id++;
abt::unique_lock lock(m_jobs_mutex);
if(const auto it = m_jobs.find(id); it == m_jobs.end()) { if(const auto it = m_jobs.find(id); it == m_jobs.end()) {
const auto& [it_job, inserted] = const auto& [it_job, inserted] =
m_jobs.emplace(id, job_info{admire::job{id, slurm_id}, m_jobs.emplace(id, job_info{admire::job{id, slurm_id},
...@@ -146,7 +144,7 @@ private: ...@@ -146,7 +144,7 @@ private:
friend class scord::utils::singleton<job_manager>; friend class scord::utils::singleton<job_manager>;
job_manager() = default; job_manager() = default;
mutable std::shared_mutex m_jobs_mutex; mutable abt::shared_mutex m_jobs_mutex;
std::unordered_map<admire::job_id, job_info> m_jobs; std::unordered_map<admire::job_id, job_info> m_jobs;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment