X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5d67901dba3dfd8e75f708c329b8144287490077..d7bc120608a7dff0e936300bc7fc0367ee26b16d:/src/simix/Synchro.cpp diff --git a/src/simix/Synchro.cpp b/src/simix/Synchro.cpp index c10c46c616..9d94aba497 100644 --- a/src/simix/Synchro.cpp +++ b/src/simix/Synchro.cpp @@ -13,3 +13,18 @@ simgrid::simix::Synchro::~Synchro() { xbt_fifo_free(simcalls); xbt_free(name); } + +void simgrid::simix::Synchro::ref() +{ + refcount++; +} +void simgrid::simix::Synchro::unref() +{ + xbt_assert(refcount > 0, + "This synchro has a negative refcount! You can only call test() or wait() once per synchronization."); + + refcount--; + if (refcount>0) + return; + delete this; +}