X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/31a818b15a9657dd08268d473255481b2a2d197b..c1194401ce4a41ff54a7591f4cf33c9ce2756978:/src/simix/smx_global.cpp diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index 9fe7ef1f54..108ba80fea 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -124,14 +124,7 @@ static void install_segvhandler() namespace simgrid { namespace simix { -Timer* Timer::set(double date, void (*callback)(void*), void* arg) -{ - Timer* timer = new Timer(date, simgrid::xbt::make_task([callback, arg]() { callback(arg); })); - timer->handle_ = simix_timers.emplace(std::make_pair(date, timer)); - return timer; -} - -Timer* Timer::set(double date, simgrid::xbt::Task callback) +Timer* Timer::set(double date, simgrid::xbt::Task&& callback) { Timer* timer = new Timer(date, std::move(callback)); timer->handle_ = simix_timers.emplace(std::make_pair(date, timer)); @@ -288,8 +281,6 @@ void SIMIX_clean() #endif /* Let's free maestro now */ - delete simix_global->maestro_process->context_; - simix_global->maestro_process->context_ = nullptr; delete simix_global->maestro_process; simix_global->maestro_process = nullptr; @@ -547,14 +538,12 @@ double SIMIX_timer_next() smx_timer_t SIMIX_timer_set(double date, void (*callback)(void*), void *arg) { - return simgrid::simix::Timer::set(date, callback, arg); + return simgrid::simix::Timer::set(date, std::bind(callback, arg)); } -smx_timer_t SIMIX_timer_set(double date, simgrid::xbt::Task callback) +smx_timer_t SIMIX_timer_set(double date, simgrid::xbt::Task&& callback) // deprecated { - smx_timer_t timer = new simgrid::simix::Timer(date, std::move(callback)); - timer->handle_ = simgrid::simix::simix_timers.emplace(std::make_pair(date, timer)); - return timer; + return simgrid::simix::Timer::set(date, std::move(callback)); } /** @brief cancels a timer that was added earlier */