SD_Simulate
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7841
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
const SD_workstation_t *workstations;
int kind;
SD_task_t task, taskA, taskB, taskC;
const SD_workstation_t *workstations;
int kind;
SD_task_t task, taskA, taskB, taskC;
- SD_task_t *changed_tasks;
+ xbt_dynar_t changed_tasks;
SD_workstation_t workstation_list[2];
double computation_amount[2];
double communication_amount[4] = { 0 };
SD_workstation_t workstation_list[2];
double computation_amount[2];
double communication_amount[4] = { 0 };
&(computation_amount[1]), SD_SCHED_NO_COST, rate);
/* let's launch the simulation! */
&(computation_amount[1]), SD_SCHED_NO_COST, rate);
/* let's launch the simulation! */
- while(*(changed_tasks = SD_simulate(-1.0))){
+ while(xbt_dynar_length(changed_tasks = SD_simulate(-1.0))>0){
for(i=0;i<2; i++){
task = SD_workstation_get_current_task(workstations[i]);
if (task)
for(i=0;i<2; i++){
task = SD_workstation_get_current_task(workstations[i]);
if (task)
ERROR0("Shouldn't be here");
}
}
ERROR0("Shouldn't be here");
}
}
- xbt_free(changed_tasks);
+ xbt_dynar_free_container(&changed_tasks);
}
DEBUG0("Destroying tasks...");
}
DEBUG0("Destroying tasks...");
double communication_amount21;
const SD_link_t *route;
int route_size;
double communication_amount21;
const SD_link_t *route;
int route_size;
- SD_task_t task, taskA, taskB, taskC, taskD;
- SD_task_t *changed_tasks;
+ SD_task_t task, taskA, taskB, taskC, taskD, checkB, checkD;
+ xbt_dynar_t changed_tasks;
xbt_ex_t ex;
const int workstation_number = 2;
SD_workstation_t workstation_list[2];
xbt_ex_t ex;
const int workstation_number = 2;
SD_workstation_t workstation_list[2];
double rate = -1.0;
SD_workstation_t w1, w2;
double rate = -1.0;
SD_workstation_t w1, w2;
- /* initialisation of SD */
+ /* initialization of SD */
SD_init(&argc, argv);
/* xbt_log_control_set("sd.thres=debug"); */
SD_init(&argc, argv);
/* xbt_log_control_set("sd.thres=debug"); */
computation_amount, communication_amount, rate);
changed_tasks = SD_simulate(-1.0);
computation_amount, communication_amount, rate);
changed_tasks = SD_simulate(-1.0);
- for (i = 0; changed_tasks[i] != NULL; i++) {
- INFO3("Task '%s' start time: %f, finish time: %f",
- SD_task_get_name(changed_tasks[i]),
- SD_task_get_start_time(changed_tasks[i]),
- SD_task_get_finish_time(changed_tasks[i]));
+ xbt_dynar_foreach(changed_tasks, i, task){
+ INFO3("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));
- xbt_assert0(changed_tasks[0] == taskD &&
- changed_tasks[1] == taskB &&
- changed_tasks[2] == NULL, "Unexpected simulation results");
+ xbt_dynar_get_cpy(changed_tasks, 0, &checkD);
+ xbt_dynar_get_cpy(changed_tasks, 1, &checkB);
- xbt_free(changed_tasks);
+ xbt_assert0(checkD == taskD &&
+ checkB == taskB, "Unexpected simulation results");
+
+ xbt_dynar_free_container(&changed_tasks);
DEBUG0("Destroying tasks...");
DEBUG0("Destroying tasks...");
const SD_link_t *route;
int route_size;
SD_task_t taskA;
const SD_link_t *route;
int route_size;
SD_task_t taskA;
- SD_task_t taskB;
- SD_task_t taskC;
- SD_task_t taskD;
+ SD_task_t taskB, checkB;
+ SD_task_t taskC, checkC;
+ SD_task_t taskD, checkD;
xbt_ex_t ex;
/* initialisation of SD */
xbt_ex_t ex;
/* initialisation of SD */
0, communication_amount12,
communication_amount21, 0
};
0, communication_amount12,
communication_amount21, 0
};
- SD_task_t *changed_tasks;
+ xbt_dynar_t changed_tasks;
double rate = -1.0;
/* estimated time */
double rate = -1.0;
/* estimated time */
computation_amount, communication_amount, rate);
changed_tasks = SD_simulate(-1.0);
computation_amount, communication_amount, rate);
changed_tasks = SD_simulate(-1.0);
- xbt_assert0(changed_tasks[0] == taskD &&
- changed_tasks[1] == taskC &&
- changed_tasks[2] == taskB &&
- changed_tasks[3] == NULL, "Unexpected simulation results");
- xbt_free(changed_tasks);
+ xbt_dynar_get_cpy(changed_tasks, 0, &checkD);
+ xbt_dynar_get_cpy(changed_tasks, 1, &checkC);
+ xbt_dynar_get_cpy(changed_tasks, 2, &checkB);
+
+ xbt_assert0(checkD == taskD &&
+ checkC == taskC &&
+ checkB == taskB, "Unexpected simulation results");
+
+ xbt_dynar_free_container(&changed_tasks);
}
DEBUG0("Destroying tasks...");
}
DEBUG0("Destroying tasks...");