+
+ m_task_t task = NULL;
+ int a;
+ int id = 0;
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ int limited_latency = 0;
+#endif
+ double remaining = 0;
+ char id_alias[10];
+
+ if (argc != 2) {
+ XBT_INFO("Strange number of arguments expected 1 got %d", argc - 1);
+ }
+
+ id = atoi(argv[1]);
+ sprintf(id_alias, "%d", id);
+ int trace_id = id;
+
+ a = MSG_task_receive(&(task), id_alias);
+
+ count_finished--;
+ if(count_finished == 0){
+ timer_start = 0;
+ }
+
+
+
+ if (a != MSG_OK) {
+ XBT_INFO("Hey?! What's up?");
+ xbt_die("Unexpected behavior.");
+ }
+
+ elapsed_time = MSG_get_clock() - start_time;
+
+
+ if (!bool_printed) {
+ bool_printed = 1;
+
+ for (id = 0; id < NTASKS; id++) {
+ if (gl_task_array[id] == NULL) continue;
+ if (gl_task_array[id] == task) {
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ limited_latency = MSG_task_is_latency_bounded(gl_task_array[id]);
+ if (limited_latency) {
+ XBT_INFO("WARNING FLOW[%d] is limited by latency!!", id);
+ }
+#endif
+ XBT_INFO
+ ("===> Estimated Bw of FLOW[%d] : %f ; message from %s to %s with remaining : %f",
+ id, gl_data_size[id] / elapsed_time, masternames[id],
+ slavenames[id], 0.0);
+ MSG_task_destroy(gl_task_array[id]);
+ gl_task_array[id]=NULL;
+ } else {
+ remaining =
+ MSG_task_get_remaining_communication(gl_task_array[id]);
+#ifdef HAVE_LATENCY_BOUND_TRACKING
+ limited_latency = MSG_task_is_latency_bounded(gl_task_array[id]);
+
+ if (limited_latency) {
+ XBT_INFO("WARNING FLOW[%d] is limited by latency!!", id);
+ }
+#endif
+ XBT_INFO
+ ("===> Estimated Bw of FLOW[%d] : %f ; message from %s to %s with remaining : %f",
+ id, (gl_data_size[id] - remaining) / elapsed_time,
+ masternames[id], slavenames[id], remaining);
+ if(remaining==0) {
+ MSG_task_destroy(gl_task_array[id]);
+ gl_task_array[id]=NULL;
+ }