process->kill_timer = nullptr;
}
- xbt_os_mutex_acquire(simix_global->mutex);
+ simix_global->mutex.lock();
/* cancel non-blocking communications */
while (not process->comms.empty()) {
}
process->context_->iwannadie = 0;
- xbt_os_mutex_release(simix_global->mutex);
+ simix_global->mutex.unlock();
}
/**
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();
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);
#include <xbt/xbt_os_thread.h>
#include <boost/intrusive/list.hpp>
+#include <mutex>
#include <unordered_map>
#include <vector>
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<simgrid::xbt::Task<void()>> tasks;
std::vector<simgrid::xbt::Task<void()>> tasksTemp;