X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5a00610e05eab122e23f56b589d5bb240e6ceda7..29d98d1ceb682fbc4c734a92353be4b0bcd5d17b:/src/kernel/activity/ActivityImpl.cpp diff --git a/src/kernel/activity/ActivityImpl.cpp b/src/kernel/activity/ActivityImpl.cpp index 986e7c5475..77e657063f 100644 --- a/src/kernel/activity/ActivityImpl.cpp +++ b/src/kernel/activity/ActivityImpl.cpp @@ -5,26 +5,21 @@ #include "src/kernel/activity/ActivityImpl.hpp" -simgrid::kernel::activity::ActivityImpl::ActivityImpl() -{ -} - -simgrid::kernel::activity::ActivityImpl::~ActivityImpl() -{ -} +simgrid::kernel::activity::ActivityImpl::ActivityImpl() = default; +simgrid::kernel::activity::ActivityImpl::~ActivityImpl() = default; void simgrid::kernel::activity::ActivityImpl::ref() { - refcount++; + // Atomic operation! Do not split in two instructions! + xbt_assert(refcount_ != 0); + refcount_++; } void simgrid::kernel::activity::ActivityImpl::unref() { - xbt_assert(refcount > 0, - "This activity has a negative refcount! You can only call test() or wait() once per activity."); - - refcount--; - if (refcount>0) - return; - delete this; + xbt_assert(refcount_ > 0, + "This activity has a negative refcount! You can only call test() or wait() once per activity."); + refcount_--; + if (refcount_ == 0) + delete this; }