X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/03b24505f40da4306ebf6f2b56c42941ae1d97e4..b22d6b4f77d1ae6f88279b887de6b7451d1e6626:/src/simix/smx_global.cpp diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index d49094502b..3256da84cd 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -29,8 +29,6 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_kernel, simix, "Logging specific to SIMIX std::unique_ptr simix_global; -void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr) = nullptr; - namespace simgrid { namespace simix { config::Flag cfg_verbose_exit{"debug/verbose-exit", "Display the actor status at exit", true}; @@ -140,14 +138,6 @@ static void install_segvhandler() #endif /* _WIN32 */ -/********************************* SIMIX **************************************/ -namespace simgrid { -namespace simix { - - -} // namespace simix -} // namespace simgrid - static simgrid::kernel::actor::ActorCode maestro_code; void SIMIX_set_maestro(void (*code)(void*), void* data) { @@ -174,7 +164,6 @@ void SIMIX_global_init(int* argc, char** argv) surf_init(argc, argv); /* Initialize SURF structures */ - simix_global->maestro_ = nullptr; SIMIX_context_mod_init(); // Either create a new context with maestro or create @@ -210,7 +199,7 @@ void SIMIX_clean() smx_cleaned = true; XBT_DEBUG("SIMIX_clean called. Simulation's over."); auto* engine = simgrid::kernel::EngineImpl::get_instance(); - if (engine->has_actors_to_run() && SIMIX_get_clock() <= 0.0) { + if (engine->has_actors_to_run() && simgrid::s4u::Engine::get_clock() <= 0.0) { XBT_CRITICAL(" "); XBT_CRITICAL("The time is still 0, and you still have processes ready to run."); XBT_CRITICAL("It seems that you forgot to run the simulation that you setup."); @@ -229,24 +218,15 @@ void SIMIX_clean() #endif /* Kill all processes (but maestro) */ - simix_global->maestro_->kill_all(); + simix_global->get_maestro()->kill_all(); engine->run_all_actors(); engine->empty_trash(); - /* Exit the SIMIX network module */ - SIMIX_mailbox_exit(); - - while (not simgrid::kernel::timer::kernel_timers().empty()) { - delete simgrid::kernel::timer::kernel_timers().top().second; - simgrid::kernel::timer::kernel_timers().pop(); - } - /* Let's free maestro now */ - delete simix_global->maestro_; - simix_global->maestro_ = nullptr; + simix_global->destroy_maestro(); /* Finish context module and SURF */ - SIMIX_context_mod_exit(); + simix_global->destroy_context_factory(); surf_exit(); @@ -259,13 +239,9 @@ void SIMIX_clean() * * @return Return the clock. */ -double SIMIX_get_clock() +double SIMIX_get_clock() // XBT_ATTRIB_DEPRECATED_v332 { - if (MC_is_active() || MC_record_replay_is_active()) { - return MC_process_clock_get(SIMIX_process_self()); - } else { - return surf_get_clock(); - } + return simgrid::s4u::Engine::get_clock(); } void SIMIX_run() // XBT_ATTRIB_DEPRECATED_v332 @@ -273,37 +249,10 @@ void SIMIX_run() // XBT_ATTRIB_DEPRECATED_v332 simgrid::kernel::EngineImpl::get_instance()->run(); } -double SIMIX_timer_next() // XBT_ATTRIB_DEPRECATED_v329 -{ - return simgrid::kernel::timer::Timer::next(); -} - -smx_timer_t SIMIX_timer_set(double date, void (*callback)(void*), void* arg) // XBT_ATTRIB_DEPRECATED_v329 -{ - return simgrid::kernel::timer::Timer::set(date, std::bind(callback, arg)); -} - -/** @brief cancels a timer that was added earlier */ -void SIMIX_timer_remove(smx_timer_t timer) // XBT_ATTRIB_DEPRECATED_v329 -{ - timer->remove(); -} - -/** @brief Returns the date at which the timer will trigger (or 0 if nullptr timer) */ -double SIMIX_timer_get_date(smx_timer_t timer) // XBT_ATTRIB_DEPRECATED_v329 -{ - return timer ? timer->get_date() : 0.0; -} - -void SIMIX_display_process_status() // XBT_ATTRIB_DEPRECATED_v329 -{ - simgrid::kernel::EngineImpl::get_instance()->display_all_actor_status(); -} - int SIMIX_is_maestro() { if (simix_global == nullptr) // SimDag return true; const simgrid::kernel::actor::ActorImpl* self = SIMIX_process_self(); - return self == nullptr || self == simix_global->maestro_; + return self == nullptr || simix_global->is_maestro(self); }