X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5d67901dba3dfd8e75f708c329b8144287490077..891abf1a3579d0e378a6e1b3426e5c34b23a58ad:/src/simix/Synchro.cpp diff --git a/src/simix/Synchro.cpp b/src/simix/Synchro.cpp index c10c46c616..e64a060a31 100644 --- a/src/simix/Synchro.cpp +++ b/src/simix/Synchro.cpp @@ -5,11 +5,26 @@ #include "src/simix/Synchro.h" -simgrid::simix::Synchro::Synchro() { - simcalls = xbt_fifo_new(); +simgrid::simix::Synchro::Synchro() +{ } -simgrid::simix::Synchro::~Synchro() { - xbt_fifo_free(simcalls); - xbt_free(name); +simgrid::simix::Synchro::~Synchro() +{ +} + +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; }