Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fix a race condition spotted by TSan
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 7 Jun 2017 15:52:26 +0000 (17:52 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Wed, 7 Jun 2017 15:55:48 +0000 (17:55 +0200)
I was hopping that it will help the msg-dht-parallel test that is
broken since a few days, but it's not sufficient. Will see what TSan
has to say next night.

src/msg/instr_msg_task.cpp

index 65b69cc..dcc9339 100644 (file)
@@ -8,6 +8,8 @@
 #include "src/instr/instr_private.h"
 #include "src/msg/msg_private.h"
 
+#include <atomic>
+
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_msg, instr, "MSG instrumentation");
 
 void TRACE_msg_set_task_category(msg_task_t task, const char *category)
@@ -31,7 +33,7 @@ void TRACE_msg_set_task_category(msg_task_t task, const char *category)
 /* MSG_task_create related function*/
 void TRACE_msg_task_create(msg_task_t task)
 {
-  static long long counter = 0;
+  static std::atomic_ullong counter{0};
   task->counter = counter++;
   task->category = nullptr;