Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
use a user level mallocator on the task content
[simgrid.git] / examples / gras / replay / replay.c
index f915360..dbe3c90 100644 (file)
@@ -46,7 +46,7 @@ int master(int argc, char *argv[])
   declare_msg();
 
 
-  xbt_assert0(argc == 3, "usage: replay_master tracefile port");
+  xbt_assert(argc == 3, "usage: replay_master tracefile port");
   gras_socket_server(atoi(argv[2]));    /* open my master socket, even if I don't use it */
   xbt_dynar_t peers = amok_pm_group_new("replay");      /* group of slaves */
   xbt_peer_t peer;
@@ -54,8 +54,6 @@ int master(int argc, char *argv[])
   xbt_workload_sort_who_date(cmds);
   unsigned int cursor;
   xbt_workload_elm_t cmd;
-
-  xbt_ex_t e;
   xbt_dict_cursor_t dict_cursor;
 
   xbt_dict_t pals_int = xbt_dict_new();
@@ -74,7 +72,7 @@ int master(int argc, char *argv[])
     TRY {
       gras_msg_handle(20);
     }
-    CATCH(e) {
+    CATCH_ANONYMOUS {
       xbt_dynar_foreach(peers, cursor, peer) {
         xbt_dict_remove(pals_int, peer->name);
       }
@@ -159,7 +157,6 @@ static int worker_commands_cb(gras_msg_cb_ctx_t ctx, void *payload)
 
 static void do_command(int rank, void *c)
 {
-  xbt_ex_t e;
   xbt_workload_elm_t cmd = *(xbt_workload_elm_t *) c;
   xbt_workload_data_chunk_t chunk;
 
@@ -176,9 +173,9 @@ static void do_command(int rank, void *c)
     TRY {
       gras_msg_wait(1000000, "chunk", NULL, &chunk);
     }
-    CATCH(e) {
+    CATCH_ANONYMOUS {
       SIMIX_display_process_status();
-      RETHROW2("Exception while waiting for %f bytes from %s: %s",
+      RETHROWF("Exception while waiting for %f bytes from %s: %s",
                cmd->d_arg, cmd->str_arg);
     }
     xbt_workload_data_chunk_free(chunk);
@@ -249,6 +246,7 @@ int worker(int argc, char *argv[])
             }
             CATCH(e) {
               SIMIX_display_process_status();
+              xbt_ex_free(e);
             }
             XBT_INFO("Communications all done");
             xbt_dynar_reset(cmd_to_go);