From 196327afa332e6c85827da70da72a1aaa178739a Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Wed, 18 Jul 2018 22:03:26 +0200 Subject: [PATCH 1/1] use std::mutex instead of xbt_os_mutex_t in simix --- src/simix/ActorImpl.cpp | 4 ++-- src/simix/smx_global.cpp | 3 --- src/simix/smx_private.hpp | 3 ++- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/simix/ActorImpl.cpp b/src/simix/ActorImpl.cpp index 5d337985da..f6665e769d 100644 --- a/src/simix/ActorImpl.cpp +++ b/src/simix/ActorImpl.cpp @@ -69,7 +69,7 @@ void SIMIX_process_cleanup(smx_actor_t process) process->kill_timer = nullptr; } - xbt_os_mutex_acquire(simix_global->mutex); + simix_global->mutex.lock(); /* cancel non-blocking communications */ while (not process->comms.empty()) { @@ -113,7 +113,7 @@ void SIMIX_process_cleanup(smx_actor_t process) } process->context_->iwannadie = 0; - xbt_os_mutex_release(simix_global->mutex); + simix_global->mutex.unlock(); } /** diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index e1fbbdfff0..c527f79be5 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -185,7 +185,6 @@ void SIMIX_global_init(int *argc, char **argv) simix_global->create_process_function = &SIMIX_process_create; simix_global->kill_process_function = &kill_process; simix_global->cleanup_process_function = &SIMIX_process_cleanup; - simix_global->mutex = xbt_os_mutex_init(); surf_init(argc, argv); /* Initialize SURF structures */ SIMIX_context_mod_init(); @@ -267,8 +266,6 @@ void SIMIX_clean() simix_global->process_to_destroy.clear(); simix_global->process_list.clear(); - xbt_os_mutex_destroy(simix_global->mutex); - simix_global->mutex = nullptr; #if SIMGRID_HAVE_MC xbt_dynar_free(&simix_global->actors_vector); xbt_dynar_free(&simix_global->dead_actors_vector); diff --git a/src/simix/smx_private.hpp b/src/simix/smx_private.hpp index 6609bd1234..ea586f129a 100644 --- a/src/simix/smx_private.hpp +++ b/src/simix/smx_private.hpp @@ -12,6 +12,7 @@ #include #include +#include #include #include @@ -56,7 +57,7 @@ public: void_pfn_smxprocess_t kill_process_function = nullptr; /** Callback used when killing a SMX_process */ void_pfn_smxprocess_t cleanup_process_function = nullptr; - xbt_os_mutex_t mutex = nullptr; + std::mutex mutex; std::vector> tasks; std::vector> tasksTemp; -- 2.20.1