X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ae66e43b95b26467c1cb9df271e83f51d3d7147b..c644d95f72f72a7a81885dc809a372e0880fdf1b:/src/gras/Virtu/process.c diff --git a/src/gras/Virtu/process.c b/src/gras/Virtu/process.c index 8f2ab4d80a..1cea719991 100644 --- a/src/gras/Virtu/process.c +++ b/src/gras/Virtu/process.c @@ -23,8 +23,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(gras_virtu_process,gras_virtu,"Process manipulat /* Functions to handle gras_procdata_t->libdata cells*/ typedef struct { char *name; - pvoid_f_void_t *constructor; - void_f_pvoid_t *destructor; + pvoid_f_void_t constructor; + void_f_pvoid_t destructor; } s_gras_procdata_fabric_t, *gras_procdata_fabric_t; static xbt_dynar_t _gras_procdata_fabrics = NULL; /* content: s_gras_procdata_fabric_t */ @@ -109,7 +109,7 @@ gras_procdata_init() { gras_procdata_t *pd=gras_procdata_get(); s_gras_procdata_fabric_t fab; - int cursor; + unsigned int cursor; xbt_ex_t e; xbt_set_elm_t elem; @@ -144,7 +144,7 @@ gras_procdata_init() { THROW1(unknown_error,0,"MayDay: two modules use '%s' as libdata name", fab.name); /* Add the data in place, after some more sanity checking */ - elem = (fab.constructor)(); + elem = (*(fab.constructor))(); if (elem->name_len && elem->name_len != strlen(elem->name)) { elem->name_len = strlen(elem->name); WARN1("Module '%s' constructor is borken: it does not set elem->name_len", @@ -167,3 +167,12 @@ gras_procdata_exit() { } xbt_dynar_free( & _gras_procdata_fabrics ); } + + +const char *gras_os_hostport() { + static char *res=NULL; + if (res) + free(res); /* my port may have changed */ + res = bprintf("%s:%d",gras_os_myname(),gras_os_myport()); + return (const char*)res; +}