Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge back master branch.
[simgrid.git] / examples / gras / p2p / can / can.c
index 4fafde0..5c4cb0d 100644 (file)
@@ -53,17 +53,18 @@ static void register_messages()
 static void forward_get_suc(get_suc_t msg, char host[1024], int port)
 {
   gras_socket_t temp_sock = NULL;
-  xbt_ex_t e;                   // the error variable used in TRY.. CATCH tokens.
   //XBT_INFO("Transmiting message to %s:%d",host,port);
   TRY {
     temp_sock = gras_socket_client(host, port);
-  } CATCH(e) {
-    RETHROW0("Unable to connect!: %s");
+  }
+  CATCH_ANONYMOUS {
+    RETHROWF("Unable to connect!: %s");
   }
   TRY {
     gras_msg_send(temp_sock, "can_get_suc", &msg);
-  } CATCH(e) {
-    RETHROW0("Unable to send!: %s");
+  }
+  CATCH_ANONYMOUS {
+    RETHROWF("Unable to send!: %s");
   }
   XBT_INFO("Forwarding a get_successor message to %s for (%d;%d)", host,
         msg.xId, msg.yId);
@@ -179,16 +180,16 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx, void *payload_data)
       TRY {
         temp_sock = gras_socket_client(incoming->host, incoming->port);
       }
-      CATCH(e) {
-        RETHROW0
+      CATCH_ANONYMOUS {
+        RETHROWF
             ("Unable to connect to the node wich has requested for an area!: %s");
       }
       TRY {
         gras_msg_send(temp_sock, "can_rep_suc", &outgoing);
         XBT_INFO("Environment informations sent!");
       }
-      CATCH(e) {
-        RETHROW2("%s:Timeout sending environment informations to %s: %s",
+      CATCH_ANONYMOUS {
+        RETHROWF("%s:Timeout sending environment informations to %s: %s",
                  globals->host, gras_socket_peer_name(expeditor));
       }
       gras_socket_close(temp_sock);
@@ -204,6 +205,7 @@ static int node_get_suc_handler(gras_msg_cb_ctx_t ctx, void *payload_data)
     XBT_INFO("My area is [%d;%d;%d;%d]", globals->x1, globals->x2,
           globals->y1, globals->y2);
     //XBT_INFO("Closing node, all has been done!");
+    xbt_ex_free(e);
   }
   return 0;
 }
@@ -251,8 +253,8 @@ int node(int argc, char **argv)
     TRY {
       temp_sock = gras_socket_client(argv[4], atoi(argv[5]));
     }
-    CATCH(e) {
-      RETHROW0("Unable to connect known host to request for an area!: %s");
+    CATCH_ANONYMOUS {
+      RETHROWF("Unable to connect known host to request for an area!: %s");
     }
 
 
@@ -263,9 +265,9 @@ int node(int argc, char **argv)
     TRY {                       // asking.
       gras_msg_send(temp_sock, "can_get_suc", &get_suc_msg);
     }
-    CATCH(e) {
+    CATCH_ANONYMOUS {
       gras_socket_close(temp_sock);
-      RETHROW0("Unable to contact known host to get an area!: %s");
+      RETHROWF("Unable to contact known host to get an area!: %s");
     }
     gras_socket_close(temp_sock);
 
@@ -275,8 +277,8 @@ int node(int argc, char **argv)
       XBT_INFO("Waiting for reply!");
       gras_msg_wait(6000, "can_rep_suc", &temp_sock2, &rep_suc_msg);
     }
-    CATCH(e) {
-      RETHROW1("%s: Error waiting for an area:%s", globals->host);
+    CATCH_ANONYMOUS {
+      RETHROWF("%s: Error waiting for an area:%s", globals->host);
     }
 
     // retreiving the data of the response.
@@ -309,6 +311,7 @@ int node(int argc, char **argv)
     XBT_INFO("My area is [%d;%d;%d;%d]", globals->x1, globals->x2,
           globals->y1, globals->y2);
     //XBT_INFO("Closing node, all has been done!");
+    xbt_ex_free(e);
   }
 
   gras_socket_close(globals->sock);     // spare.