X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c642311b1135f0d4a8f55e5822d9c0b4fb8e5e5d..891abf1a3579d0e378a6e1b3426e5c34b23a58ad:/src/simix/smx_process.cpp diff --git a/src/simix/smx_process.cpp b/src/simix/smx_process.cpp index 1eb504d23d..836d2d0ae8 100644 --- a/src/simix/smx_process.cpp +++ b/src/simix/smx_process.cpp @@ -126,17 +126,21 @@ void SIMIX_process_empty_trash(void) while ((process = (smx_process_t) xbt_swag_extract(simix_global->process_to_destroy))) { XBT_DEBUG("Getting rid of %p",process); - delete process->context; - xbt_dict_free(&process->properties); - xbt_fifo_free(process->comms); - xbt_dynar_free(&process->on_exit); - delete process; + intrusive_ptr_release(process); } } namespace simgrid { namespace simix { +Process::~Process() +{ + delete this->context; + xbt_dict_free(&this->properties); + xbt_fifo_free(this->comms); + xbt_dynar_free(&this->on_exit); +} + void create_maestro(std::function code) { smx_process_t maestro = nullptr;