From: agiersch Date: Tue, 22 Feb 2011 13:19:27 +0000 (+0000) Subject: Fix memory leaks in simdag examples and tests. X-Git-Tag: v3.6_beta2~260 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/b3e4aba8bde56e605110f8140ab13f92b62b3711?ds=sidebyside Fix memory leaks in simdag examples and tests. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9683 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/examples/simdag/scheduling/minmin_test.c b/examples/simdag/scheduling/minmin_test.c index 898120fbe9..194cb28254 100644 --- a/examples/simdag/scheduling/minmin_test.c +++ b/examples/simdag/scheduling/minmin_test.c @@ -353,6 +353,7 @@ int main(int argc, char **argv) xbt_dynar_foreach(dax, cursor, task) { SD_task_destroy(task); } + xbt_dynar_free_container(&dax); for (cursor = 0; cursor < total_nworkstations; cursor++) SD_workstation_free_attribute(workstations[cursor]); diff --git a/examples/simdag/sd_seq_access.c b/examples/simdag/sd_seq_access.c index 786ce2266e..c1157cbffa 100644 --- a/examples/simdag/sd_seq_access.c +++ b/examples/simdag/sd_seq_access.c @@ -116,8 +116,9 @@ int main(int argc, char **argv) XBT_ERROR("Shouldn't be here"); } } - xbt_dynar_free_container(&changed_tasks); + xbt_dynar_free(&changed_tasks); } + xbt_dynar_free(&changed_tasks); XBT_DEBUG("Destroying tasks..."); diff --git a/teshsuite/simdag/basic0.c b/teshsuite/simdag/basic0.c index 3830db30a1..df85ce7659 100644 --- a/teshsuite/simdag/basic0.c +++ b/teshsuite/simdag/basic0.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskB; + xbt_dynar_t ret; /* scheduling parameters */ @@ -50,7 +51,11 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskInit, taskB); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskInit); + SD_task_destroy(taskA); + SD_task_destroy(taskB); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/basic1.c b/teshsuite/simdag/basic1.c index 24386fe8ed..2077754a3d 100644 --- a/teshsuite/simdag/basic1.c +++ b/teshsuite/simdag/basic1.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskB; + xbt_dynar_t ret; double communication_amount1 = 1000000000; double communication_amount2 = 1000000000; @@ -52,7 +53,12 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskInit, taskB); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskA); + SD_task_destroy(taskB); + SD_task_destroy(taskInit); + XBT_INFO("Simulation time: %f", SD_get_clock()); SD_exit(); diff --git a/teshsuite/simdag/basic2.c b/teshsuite/simdag/basic2.c index 68c289373f..e0bd0f1634 100644 --- a/teshsuite/simdag/basic2.c +++ b/teshsuite/simdag/basic2.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskB; + xbt_dynar_t ret; const SD_workstation_t *workstation; @@ -51,7 +52,11 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskInit, taskB); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskA); + SD_task_destroy(taskB); + SD_task_destroy(taskInit); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/basic3.c b/teshsuite/simdag/basic3.c index d07054deed..9657e3a0a5 100644 --- a/teshsuite/simdag/basic3.c +++ b/teshsuite/simdag/basic3.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskFin; + xbt_dynar_t ret; /* scheduling parameters */ @@ -44,7 +45,11 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskA, taskFin); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskInit); + SD_task_destroy(taskA); + SD_task_destroy(taskFin); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/basic4.c b/teshsuite/simdag/basic4.c index 4022db65e8..ac09265344 100644 --- a/teshsuite/simdag/basic4.c +++ b/teshsuite/simdag/basic4.c @@ -18,7 +18,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskFin; - + xbt_dynar_t ret; /* scheduling parameters */ @@ -48,7 +48,11 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskA, taskFin); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskInit); + SD_task_destroy(taskA); + SD_task_destroy(taskFin); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/basic5.c b/teshsuite/simdag/basic5.c index dcb3ac4a91..b40070126b 100644 --- a/teshsuite/simdag/basic5.c +++ b/teshsuite/simdag/basic5.c @@ -18,7 +18,7 @@ int main(int argc, char **argv) SD_task_t taskInit; SD_task_t taskA; SD_task_t taskB; - + xbt_dynar_t ret; /* scheduling parameters */ @@ -48,7 +48,11 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, taskInit, taskA); SD_task_dependency_add(NULL, NULL, taskInit, taskB); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskInit); + SD_task_destroy(taskA); + SD_task_destroy(taskB); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/basic6.c b/teshsuite/simdag/basic6.c index 4cbf28b076..454725e184 100644 --- a/teshsuite/simdag/basic6.c +++ b/teshsuite/simdag/basic6.c @@ -18,6 +18,7 @@ int main(int argc, char **argv) double comm_cost[] = { 0.0, 0.0, 0.0, 0.0 }; double comp_cost[] = { 1.0 }; SD_task_t taskA, taskB; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -30,7 +31,10 @@ int main(int argc, char **argv) SD_task_schedule(taskB, 1, SD_workstation_get_list(), comp_cost, comm_cost, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); + SD_task_destroy(taskA); + SD_task_destroy(taskB); XBT_INFO("Simulation time: %f", SD_get_clock()); diff --git a/teshsuite/simdag/network/mxn/test_intra_all2all.c b/teshsuite/simdag/network/mxn/test_intra_all2all.c index bb9dfdde51..6bbce820a3 100644 --- a/teshsuite/simdag/network/mxn/test_intra_all2all.c +++ b/teshsuite/simdag/network/mxn/test_intra_all2all.c @@ -25,6 +25,7 @@ int main(int argc, char **argv) { double time; SD_task_t task; + xbt_dynar_t ret; double communication_amount[] = { 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, @@ -45,7 +46,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 4, SD_workstation_get_list(), no_cost, communication_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/mxn/test_intra_independent_comm.c b/teshsuite/simdag/network/mxn/test_intra_independent_comm.c index a4f4bfbd34..fc23249748 100644 --- a/teshsuite/simdag/network/mxn/test_intra_independent_comm.c +++ b/teshsuite/simdag/network/mxn/test_intra_independent_comm.c @@ -25,6 +25,7 @@ int main(int argc, char **argv) { double time; SD_task_t task; + xbt_dynar_t ret; double communication_amount[] = { 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, @@ -45,7 +46,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 4, SD_workstation_get_list(), no_cost, communication_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/mxn/test_intra_scatter.c b/teshsuite/simdag/network/mxn/test_intra_scatter.c index 2c9f00b608..d9447451e3 100644 --- a/teshsuite/simdag/network/mxn/test_intra_scatter.c +++ b/teshsuite/simdag/network/mxn/test_intra_scatter.c @@ -26,6 +26,7 @@ int main(int argc, char **argv) { double time; SD_task_t task; + xbt_dynar_t ret; double communication_amount[] = { 0.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, @@ -46,7 +47,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 4, SD_workstation_get_list(), no_cost, communication_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/p2p/test_latency1.c b/teshsuite/simdag/network/p2p/test_latency1.c index 7a3b152688..8005d04c63 100644 --- a/teshsuite/simdag/network/p2p/test_latency1.c +++ b/teshsuite/simdag/network/p2p/test_latency1.c @@ -25,6 +25,7 @@ int main(int argc, char **argv) double communication_amount[] = { 0.0, 1.0, 0.0, 0.0 }; const double no_cost[] = { 0.0, 0.0 }; SD_task_t task; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -34,7 +35,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 2, SD_workstation_get_list(), no_cost, communication_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/p2p/test_latency2.c b/teshsuite/simdag/network/p2p/test_latency2.c index e5e1e4ad9a..d78935df44 100644 --- a/teshsuite/simdag/network/p2p/test_latency2.c +++ b/teshsuite/simdag/network/p2p/test_latency2.c @@ -28,6 +28,7 @@ int main(int argc, char **argv) double communication_amount2[] = { 0.0, 1.0, 0.0, 0.0 }; double no_cost1[] = { 0.0 }; double no_cost[] = { 0.0, 0.0 }; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -46,7 +47,8 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, root, task1); SD_task_dependency_add(NULL, NULL, root, task2); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/p2p/test_latency3.c b/teshsuite/simdag/network/p2p/test_latency3.c index ff385fb880..bf6938354c 100644 --- a/teshsuite/simdag/network/p2p/test_latency3.c +++ b/teshsuite/simdag/network/p2p/test_latency3.c @@ -29,6 +29,7 @@ int main(int argc, char **argv) double communication_amount2[] = { 0.0, 0.0, 1.0, 0.0 }; double no_cost1[] = { 0.0 }; double no_cost[] = { 0.0, 0.0 }; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -47,7 +48,8 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, root, task1); SD_task_dependency_add(NULL, NULL, root, task2); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/network/p2p/test_latency_bound.c b/teshsuite/simdag/network/p2p/test_latency_bound.c index c52cc146c6..866ee27181 100644 --- a/teshsuite/simdag/network/p2p/test_latency_bound.c +++ b/teshsuite/simdag/network/p2p/test_latency_bound.c @@ -29,6 +29,7 @@ int main(int argc, char **argv) double time; double communication_amount[] = { 0.0, 1.0, 0.0, 0.0 }; double no_cost[] = { 0.0, 0.0 }; + xbt_dynar_t ret; SD_task_t root; SD_task_t task[TASK_NUM]; @@ -49,7 +50,8 @@ int main(int argc, char **argv) SD_task_dependency_add(NULL, NULL, root, task[i]); } - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); @@ -59,6 +61,7 @@ int main(int argc, char **argv) for (i = 0; i < TASK_NUM; i++) { SD_task_destroy(task[i]); } + SD_task_destroy(root); SD_exit(); diff --git a/teshsuite/simdag/network/test_reinit_costs.c b/teshsuite/simdag/network/test_reinit_costs.c index c269ba7d39..58b54de873 100644 --- a/teshsuite/simdag/network/test_reinit_costs.c +++ b/teshsuite/simdag/network/test_reinit_costs.c @@ -38,21 +38,25 @@ static void zero_cost_test(int *argc, char *argv[]) { double time; SD_task_t task; + xbt_dynar_t ret; SD_init(argc, argv); SD_create_environment(argv[1]); task = create_empty_cost_root(); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); SD_task_destroy(task); SD_application_reinit(); task = create_empty_cost_root(); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); SD_task_destroy(task); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); printf("%g\n", time); @@ -78,21 +82,25 @@ static void zero_cost_test2(int *argc, char *argv[]) { double time; SD_task_t task; + xbt_dynar_t ret; SD_init(argc, argv); SD_create_environment(argv[1]); task = create_root_with_costs(); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); SD_task_destroy(task); SD_application_reinit(); task = create_empty_cost_root(); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); SD_task_destroy(task); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); printf("%g\n", time); diff --git a/teshsuite/simdag/partask/test_comp_only_par.c b/teshsuite/simdag/partask/test_comp_only_par.c index e75d0854f0..073f791fc5 100644 --- a/teshsuite/simdag/partask/test_comp_only_par.c +++ b/teshsuite/simdag/partask/test_comp_only_par.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) double comp_cost[] = { 1.0, 1.0 }; SD_task_t task; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -25,7 +26,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 2, SD_workstation_get_list(), comp_cost, comm_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock(); diff --git a/teshsuite/simdag/partask/test_comp_only_seq.c b/teshsuite/simdag/partask/test_comp_only_seq.c index db4e202569..fd67aa1b2d 100644 --- a/teshsuite/simdag/partask/test_comp_only_seq.c +++ b/teshsuite/simdag/partask/test_comp_only_seq.c @@ -17,6 +17,7 @@ int main(int argc, char **argv) double comp_cost[] = { 1.0 }; SD_task_t task; + xbt_dynar_t ret; SD_init(&argc, argv); SD_create_environment(argv[1]); @@ -25,7 +26,8 @@ int main(int argc, char **argv) SD_task_schedule(task, 1, SD_workstation_get_list(), comp_cost, comm_amount, -1.0); - SD_simulate(-1.0); + ret = SD_simulate(-1.0); + xbt_dynar_free(&ret); time = SD_get_clock();