From ed4d9195562842753411ebe491d2d66f46965a1a Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Thu, 16 Jun 2016 15:12:27 +0200 Subject: [PATCH] [simix] Add warning about atomic operations --- src/simix/smx_process_private.h | 2 ++ src/simix/smx_synchro_private.h | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/simix/smx_process_private.h b/src/simix/smx_process_private.h index 837cc22d8e..29e0756fe6 100644 --- a/src/simix/smx_process_private.h +++ b/src/simix/smx_process_private.h @@ -72,12 +72,14 @@ public: friend void intrusive_ptr_add_ref(Process* process) { + // Atomic operation! Do not split in two instructions! auto previous = (process->refcount_)++; xbt_assert(previous != 0); (void) previous; } friend void intrusive_ptr_release(Process* process) { + // Atomic operation! Do not split in two instructions! auto count = --(process->refcount_); if (count == 0) delete process; diff --git a/src/simix/smx_synchro_private.h b/src/simix/smx_synchro_private.h index 21e76b467c..d9d039175a 100644 --- a/src/simix/smx_synchro_private.h +++ b/src/simix/smx_synchro_private.h @@ -36,12 +36,14 @@ public: // boost::intrusive_ptr support: friend void intrusive_ptr_add_ref(Mutex* mutex) { + // Atomic operation! Do not split in two instructions! auto previous = (mutex->refcount_)++; xbt_assert(previous != 0); (void) previous; } friend void intrusive_ptr_release(Mutex* mutex) { + // Atomic operation! Do not split in two instructions! auto count = --(mutex->refcount_); if (count == 0) delete mutex; -- 2.20.1