XBT_DEBUG("<%d> Process left the game", index);
}
+/**
+ * @brief Prepares the current process for termination.
+ */
+void smpi_process_finalize(void)
+{
+ // wait for all pending asynchronous comms to finish
+ while (SIMIX_process_has_pending_comms(SIMIX_process_self())) {
+ SIMIX_req_process_sleep(1);
+ }
+}
+
int smpi_process_argc(void) {
smpi_process_data_t data = smpi_process_data();
smpi_process_data_t smpi_process_data(void)
{
- return SIMIX_process_self_get_data();
+ return SIMIX_process_self_get_data(SIMIX_process_self());
}
smpi_process_data_t smpi_process_remote_data(int index)
NULL);
if(getenv("SMPI_PRETEND_CC") != NULL) {
+ /* Hack to ensure that smpicc can pretend to be a simple compiler. Particularly handy to pass it to the configuration tools */
return 0;
}
// parse the platform file: get the host list
SIMIX_create_environment(xargv[1]);
- SIMIX_function_register("smpi_simulated_main", smpi_simulated_main);
+ SIMIX_function_register_default(smpi_simulated_main);
SIMIX_launch_application(xargv[2]);
smpi_global_init();
SIMIX_run();
if (xbt_cfg_get_int(_surf_cfg_set, "smpi/display_timing"))
- XBT_INFO("simulation time %g", SIMIX_get_clock());
+ XBT_INFO("Simulation time: %g seconds.", SIMIX_get_clock());
smpi_global_destroy();