Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Move datadesc and TCP sockets from GRAS to XBT.
[simgrid.git] / src / gras / Virtu / process.c
index 6ac3a17..24c0f62 100644 (file)
@@ -10,7 +10,7 @@
 #include "xbt/sysdep.h"
 #include "xbt/log.h"
 #include "gras/transport.h"
-#include "gras/datadesc.h"
+#include "xbt/datadesc.h"
 #include "gras/messages.h"
 #include "gras_modinter.h"
 
@@ -89,7 +89,6 @@ void *gras_libdata_by_name_from_procdata(const char *name,
                                          gras_procdata_t * pd)
 {
   void *res = NULL;
-  xbt_ex_t e;
   if (xbt_set_length(pd->libdata) <
       xbt_dynar_length(_gras_procdata_fabrics)) {
     /* Damn, some new modules were added since procdata_init(). Amok? */
@@ -99,8 +98,8 @@ void *gras_libdata_by_name_from_procdata(const char *name,
   TRY {
     res = xbt_set_get_by_name(pd->libdata, name);
   }
-  CATCH(e) {
-    RETHROW1("Cannot retrieve the libdata associated to %s: %s", name);
+  CATCH_ANONYMOUS {
+    RETHROWF("Cannot retrieve the libdata associated to %s: %s", name);
   }
   return res;
 }
@@ -125,7 +124,6 @@ void gras_procdata_init()
 
   unsigned int cursor;
 
-  xbt_ex_t e;
   xbt_set_elm_t elem;
 
   if (!pd->libdata) {
@@ -134,36 +132,28 @@ void gras_procdata_init()
   }
 
   xbt_dynar_foreach(_gras_procdata_fabrics, cursor, fab) {
-    volatile int found = 0;
 
     if (cursor + 1 <= xbt_set_length(pd->libdata)) {
-      DEBUG2("Skip fabric %d: there is already %ld libdata",
+      XBT_DEBUG("Skip fabric %d: there is already %ld libdata",
              cursor, xbt_set_length(pd->libdata));
       continue;                 /* allow to recall this function to get recently added fabrics */
     }
-    DEBUG2("Go ahead for cursor %d, there is %ld libdata",
+    XBT_DEBUG("Go ahead for cursor %d, there is %ld libdata",
            cursor, xbt_set_length(pd->libdata));
 
-    xbt_assert1(fab.name, "Name of fabric #%d is NULL!", cursor);
-    DEBUG1("Create the procdata for %s", fab.name);
+    xbt_assert(fab.name, "Name of fabric #%d is NULL!", cursor);
+    XBT_DEBUG("Create the procdata for %s", fab.name);
     /* Check for our own errors */
-    TRY {
-      xbt_set_get_by_name(pd->libdata, fab.name);
-      found = 1;
-    }
-    CATCH(e) {
-      xbt_ex_free(e);
-      found = 0;
-    }
-    if (found)
-      THROW1(unknown_error, 0,
+
+    if (xbt_set_get_by_name_or_null(pd->libdata, fab.name) != NULL)
+      THROWF(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
+      XBT_WARN
           ("Module '%s' constructor is borken: it does not set elem->name_len",
            fab.name);
     }
@@ -189,8 +179,7 @@ void gras_procdata_exit()
 const char *gras_os_hostport()
 {
   static char *res = NULL;
-  if (res)
-    free(res);                  /* my port may have changed */
+  free(res);                  /* my port may have changed */
   res = bprintf("%s:%d", gras_os_myname(), gras_os_myport());
   return (const char *) res;
 }