-/* Copyright (c) 2007-2009 Da SimGrid Team. All rights reserved. */
+/* Copyright (c) 2006, 2007, 2008, 2009, 2010. The SimGrid Team.
+ * All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
return task->name;
}
+/** @brief Allows to change the name of a task */
+void SD_task_set_name(SD_task_t task, const char *name) {
+ xbt_free(task->name);
+ task->name = xbt_strdup(name);
+}
+
/** @brief Returns the dynar of the parents of a task
*
* \param task a task
double time, max_time = 0.0;
int i, j;
SD_CHECK_INIT_DONE();
- xbt_assert0(task != NULL && workstation_nb > 0 && workstation_list != NULL
- && computation_amount != NULL
- && communication_amount != NULL, "Invalid parameter");
+ xbt_assert0(task != NULL && workstation_nb > 0 && workstation_list != NULL,
+ "Invalid parameter");
/* the task execution time is the maximum execution time of the parallel tasks */
for (i = 0; i < workstation_nb; i++) {
- time =
- SD_workstation_get_computation_time(workstation_list[i],
- computation_amount[i]);
-
- for (j = 0; j < workstation_nb; j++) {
- time +=
- SD_route_get_communication_time(workstation_list[i],
- workstation_list[j],
- communication_amount[i *
- workstation_nb +
- j]);
- }
+ time = 0.0;
+ if (computation_amount != NULL)
+ time =
+ SD_workstation_get_computation_time(workstation_list[i],
+ computation_amount[i]);
+
+ if (communication_amount != NULL)
+ for (j = 0; j < workstation_nb; j++) {
+ time +=
+ SD_route_get_communication_time(workstation_list[i],
+ workstation_list[j],
+ communication_amount[i *
+ workstation_nb +
+ j]);
+ }
if (time > max_time) {
max_time = time;