X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/82f048773df5d2086fe2044d2bef0cbffdf6f982..d5b29830df70e823202e384a7655e4371193ecd7:/examples/simdag/availability/sd_availability.c diff --git a/examples/simdag/availability/sd_availability.c b/examples/simdag/availability/sd_availability.c index f966a04741..a0b20a03f9 100644 --- a/examples/simdag/availability/sd_availability.c +++ b/examples/simdag/availability/sd_availability.c @@ -39,13 +39,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(sd_avail, "Logging specific to this SimDag example" int main(int argc, char **argv) { - unsigned int ctr; - SD_task_t task; - xbt_dynar_t changed_tasks; - SD_init(&argc, argv); SD_create_environment(argv[1]); - const sg_host_t *hosts = sg_host_list(); + sg_host_t *hosts = sg_host_list(); SD_task_t t1 = SD_task_create_comp_seq("t1", NULL, 25000000); SD_task_t c1 = SD_task_create_comm_e2e("c1", NULL, 125000000); @@ -78,19 +74,27 @@ int main(int argc, char **argv) SD_task_watch(t3, SD_DONE); SD_task_watch(c3, SD_DONE); SD_task_watch(t4, SD_DONE); - - while (!xbt_dynar_is_empty((changed_tasks = SD_simulate(-1.0)))) { - XBT_INFO("link1: bw=%.0f, lat=%f", SD_route_get_bandwidth(hosts[0], hosts[1]), - SD_route_get_latency(hosts[0], hosts[1])); + xbt_dynar_t changed_tasks = xbt_dynar_new(sizeof(SD_task_t), NULL); + while (1) { + SD_simulate_with_update(-1.0, changed_tasks); + if (xbt_dynar_is_empty(changed_tasks)) + break; + XBT_INFO("link1: bw=%.0f, lat=%f", sg_host_route_bandwidth(hosts[0], hosts[1]), + sg_host_route_latency(hosts[0], hosts[1])); XBT_INFO("Jupiter: speed=%.0f", sg_host_speed(hosts[0])* sg_host_get_available_speed(hosts[0])); XBT_INFO("Tremblay: speed=%.0f", sg_host_speed(hosts[1])* sg_host_get_available_speed(hosts[1])); + + unsigned int ctr; + SD_task_t task; xbt_dynar_foreach(changed_tasks, ctr, task) { XBT_INFO("Task '%s' start time: %f, finish time: %f", SD_task_get_name(task), SD_task_get_start_time(task), SD_task_get_finish_time(task)); if (SD_task_get_state(task)==SD_DONE) SD_task_destroy(task); } + xbt_dynar_reset(changed_tasks); } - SD_exit(); + xbt_free(hosts); + xbt_dynar_free(&changed_tasks); return 0; }