SD_task_t taskC = SD_task_create("Task C", NULL, 30.0);
SD_task_t taskD = SD_task_create("Task D", NULL, 60.0);
-
SD_task_dependency_add(NULL, NULL, taskB, taskA);
SD_task_dependency_add(NULL, NULL, taskC, taskA);
SD_task_dependency_add(NULL, NULL, taskD, taskB);
SD_task_dependency_add(NULL, NULL, taskD, taskC);
/* SD_task_dependency_add(NULL, NULL, taskA, taskD); /\* deadlock */
-/* xbt_ex_t ex; */
-
-/* TRY { */
-/* SD_task_dependency_add(NULL, NULL, taskA, taskA); /\* shouldn't work and must raise an exception *\/ */
-/* xbt_assert0(0, "Hey, I can add a dependency between Task A and Task A!"); */
-/* } */
-/* CATCH (ex) { */
-/* } */
-
-/* TRY { */
-/* SD_task_dependency_add(NULL, NULL, taskA, taskB); /\* shouldn't work and must raise an exception *\/ */
-/* xbt_assert0(0, "Oh oh, I can add an already existing dependency!"); */
-/* } */
-/* CATCH (ex) { */
-/* } */
-
-/* SD_task_dependency_remove(taskA, taskB); */
-
-/* TRY { */
-/* SD_task_dependency_remove(taskC, taskA); /\* shouldn't work and must raise an exception *\/ */
-/* xbt_assert0(0, "Dude, I can remove an unknown dependency!"); */
-/* } */
-/* CATCH (ex) { */
-/* } */
-
-/* TRY { */
-/* SD_task_dependency_remove(taskC, taskC); /\* shouldn't work and must raise an exception *\/ */
-/* xbt_assert0(0, "Wow, I can remove a dependency between Task C and itself!"); */
-/* } */
-/* CATCH (ex) { */
-/* } */
-
-
- /* if everything is ok, no exception is forwarded or rethrown by main() */
-
/* watch points */
/* SD_task_watch(taskB, SD_DONE);*/
computation_amount, communication_amount, rate);
printf("Launching simulation...\n");
- SD_simulate(100);
+ SD_task_t *changed_tasks = SD_simulate(100);
+ int i = 0;
+
+ printf("Simulation results:\n");
+ while(changed_tasks[i] != NULL) {
+ switch (SD_task_get_state(changed_tasks[i])) {
+ case SD_SCHEDULED:
+ printf("%s is scheduled.\n", SD_task_get_name(changed_tasks[i]));
+ break;
+ case SD_READY:
+ printf("%s is ready.\n", SD_task_get_name(changed_tasks[i]));
+ break;
+ case SD_DONE:
+ printf("%s is done.\n", SD_task_get_name(changed_tasks[i]));
+ break;
+ case SD_FAILED:
+ printf("%s is failed.\n", SD_task_get_name(changed_tasks[i]));
+ break;
+ default:
+ printf("Unknown status for %s\n", SD_task_get_name(changed_tasks[i]));
+ break;
+ }
+ i++;
+ }
+
+ free(changed_tasks);
SD_task_destroy(taskA);
SD_task_destroy(taskB);