const char *gras_os_myname(void)
{
+ smx_host_t host;
smx_process_t process = SIMIX_process_self();
- if (process != NULL)
- return SIMIX_host_get_name(SIMIX_host_self());
- else
- return "";
+
+ /*HACK: 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 && (host = SIMIX_host_self()) != NULL)
+ return SIMIX_host_get_name(host);
+
+ return "";
}