X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d9966aa66acc63c0417fbeae8e3ff12bccb0cdb0..5a9daf6dc6023e088fc54646fbe95de0bf872f2d:/src/simix/smx_global.cpp diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index adbd7e9254..adcb65e55d 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -68,7 +68,7 @@ public: s_smx_timer_t(double date, simgrid::xbt::Task callback) : date(date), callback(std::move(callback)) {} }; -void (*SMPI_switch_data_segment)(int) = nullptr; +void (*SMPI_switch_data_segment)(simgrid::s4u::ActorPtr) = nullptr; int _sg_do_verbose_exit = 1; static void inthandler(int) @@ -169,21 +169,16 @@ static void kill_process(smx_actor_t process) SIMIX_process_kill(process, nullptr); } -static std::function maestro_code; namespace simgrid { namespace simix { simgrid::xbt::signal onDeadlock; -XBT_PUBLIC(void) set_maestro(std::function code) -{ - maestro_code = std::move(code); -} - } } +static std::function maestro_code; void SIMIX_set_maestro(void (*code)(void*), void* data) { #ifdef _WIN32 @@ -195,9 +190,6 @@ void SIMIX_set_maestro(void (*code)(void*), void* data) /** * \ingroup SIMIX_API * \brief Initialize SIMIX internal data. - * - * \param argc Argc - * \param argv Argv */ void SIMIX_global_init(int *argc, char **argv) { @@ -220,7 +212,7 @@ void SIMIX_global_init(int *argc, char **argv) // Either create a new context with maestro or create // a context object with the current context mestro): - simgrid::simix::create_maestro(maestro_code); + simgrid::kernel::actor::create_maestro(maestro_code); /* Prepare to display some more info when dying on Ctrl-C pressing */ signal(SIGINT, inthandler); @@ -282,7 +274,7 @@ void SIMIX_clean() #endif /* Kill all processes (but maestro) */ - SIMIX_process_killall(simix_global->maestro_process, 1); + SIMIX_process_killall(simix_global->maestro_process); SIMIX_context_runall(); SIMIX_process_empty_trash(); @@ -339,9 +331,9 @@ double SIMIX_get_clock() /** Wake up all processes waiting for a Surf action to finish */ static void SIMIX_wake_processes() { - simgrid::kernel::resource::Action* action; - for (auto const& model : *all_existing_models) { + simgrid::kernel::resource::Action* action; + XBT_DEBUG("Handling the processes whose action failed (if any)"); while ((action = surf_model_extract_failed_action_set(model))) { XBT_DEBUG(" Handling Action %p",action); @@ -661,12 +653,12 @@ void SIMIX_display_process_status() if (boost::dynamic_pointer_cast(process->waiting_synchro) != nullptr) synchro_description = "I/O"; - XBT_INFO("Process %lu (%s@%s): waiting for %s synchro %p (%s) in state %d to finish", process->pid, + XBT_INFO("Process %ld (%s@%s): waiting for %s synchro %p (%s) in state %d to finish", process->pid, process->getCname(), process->host->getCname(), synchro_description, process->waiting_synchro.get(), process->waiting_synchro->name.c_str(), (int)process->waiting_synchro->state); } else { - XBT_INFO("Process %lu (%s@%s)", process->pid, process->getCname(), process->host->getCname()); + XBT_INFO("Process %ld (%s@%s)", process->pid, process->getCname(), process->host->getCname()); } } }