X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a4aa7f5908948df11fbbc0b6fdf343773c568272..ff3cdbac76f96b8a8f7f5ba4e3b8d5a737625348:/src/gras/Virtu/sg_process.c?ds=sidebyside diff --git a/src/gras/Virtu/sg_process.c b/src/gras/Virtu/sg_process.c index 218b4473b8..bc39cf2c7a 100644 --- a/src/gras/Virtu/sg_process.c +++ b/src/gras/Virtu/sg_process.c @@ -170,14 +170,19 @@ xbt_dict_t gras_process_properties(void) const char *xbt_procname(void) { - const char *res = NULL; smx_process_t process = SIMIX_process_self(); - if (process != NULL) - res = SIMIX_process_get_name(process); - if (res) - return res; - else - return ""; + /*FIXME: maestro used not have a simix process, now it does so + SIMIX_process_self will return something different to NULL. This breaks + the old xbt_log logic that assumed that NULL was equivalent to maestro, + thus when printing it searches for maestro host name (which doesn't exists) + and breaks the logging. + As a hack we check for maestro by looking to the assigned host, if it is + NULL then we are sure is maestro + */ + if (process != NULL && SIMIX_host_self()) + return SIMIX_process_get_name(process); + + return ""; } int gras_os_getpid(void) @@ -238,32 +243,13 @@ void gras_function_register(const char *name, xbt_main_func_t code) void gras_main() { - smx_action_t action; - xbt_fifo_t actions_done = xbt_fifo_new(); - xbt_fifo_t actions_failed = xbt_fifo_new(); - /* Clean IO before the run */ fflush(stdout); fflush(stderr); SIMIX_init(); - while (SIMIX_solve(actions_done, actions_failed) != -1.0) { - while ((action = xbt_fifo_pop(actions_failed))) { - DEBUG1("** %s failed **", SIMIX_action_get_name(action)); - SIMIX_action_signal_all (action); - /* action finished, destroy it */ - // SIMIX_action_destroy(action); - } - - while ((action = xbt_fifo_pop(actions_done))) { - DEBUG1("** %s done **", SIMIX_action_get_name(action)); - SIMIX_action_signal_all (action); - /* action finished, destroy it */ - //SIMIX_action_destroy(action); - } - } - xbt_fifo_free(actions_failed); - xbt_fifo_free(actions_done); + while (SIMIX_solve(NULL, NULL) != -1.0); + return; }