#include <algorithm>
#include <cstdio>
#include <cstring>
+#include <mutex>
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_dict, xbt, "Dictionaries provide the same functionalities as hash tables");
static void xbt_dict_preinit()
{
if (dict_elm_mallocator == nullptr) {
- dict_elm_mallocator =
- xbt_mallocator_new(256, dict_elm_mallocator_new_f, dict_elm_mallocator_free_f, dict_elm_mallocator_reset_f);
- atexit(xbt_dict_postexit);
+ static std::mutex init_mutex;
+ init_mutex.lock();
+ if (dict_elm_mallocator == nullptr) { // Just in case someone initialized it in between
+ dict_elm_mallocator =
+ xbt_mallocator_new(256, dict_elm_mallocator_new_f, dict_elm_mallocator_free_f, dict_elm_mallocator_reset_f);
+ atexit(xbt_dict_postexit);
+ }
+ init_mutex.unlock();
}
}
storage_client_server listen_async pid
trace-integration
seal-platform
- vm-live-migration vm-suicide issue71)
+ vm-live-migration vm-suicide issue71)
if(NOT DEFINED ${x}_sources)
set(${x}_sources ${x}/${x}.cpp)