X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6ee7e9c2e455536ab817ae0136acfbb53822eecd..7ad4d29624370296a9e4683136f8f64147790ead:/src/simdag/sd_task.c diff --git a/src/simdag/sd_task.c b/src/simdag/sd_task.c index d1d9f1adcd..9735f36dfd 100644 --- a/src/simdag/sd_task.c +++ b/src/simdag/sd_task.c @@ -83,7 +83,7 @@ SD_task_t SD_task_create(const char *name, void *data, double amount) void *SD_task_get_data(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); return task->data; } @@ -100,7 +100,7 @@ void *SD_task_get_data(SD_task_t task) void SD_task_set_data(SD_task_t task, void *data) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); task->data = data; } @@ -115,7 +115,7 @@ void SD_task_set_data(SD_task_t task, void *data) e_SD_task_state_t SD_task_get_state(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); return task->state; } @@ -158,7 +158,7 @@ void __SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state) task->state_set = sd_global->failed_task_set; break; default: - xbt_assert0(0, "Invalid state"); + xbt_die( "Invalid state"); } xbt_swag_insert(task, task->state_set); task->state = new_state; @@ -179,7 +179,7 @@ void __SD_task_set_state(SD_task_t task, e_SD_task_state_t new_state) const char *SD_task_get_name(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); return task->name; } @@ -202,7 +202,7 @@ xbt_dynar_t SD_task_get_parents(SD_task_t task) xbt_dynar_t parents; SD_dependency_t dep; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); parents = xbt_dynar_new(sizeof(SD_task_t), NULL); xbt_dynar_foreach(task->tasks_before, i, dep) { @@ -222,7 +222,7 @@ xbt_dynar_t SD_task_get_children(SD_task_t task) xbt_dynar_t children; SD_dependency_t dep; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); children = xbt_dynar_new(sizeof(SD_task_t), NULL); xbt_dynar_foreach(task->tasks_after, i, dep) { @@ -240,8 +240,8 @@ xbt_dynar_t SD_task_get_children(SD_task_t task) int SD_task_get_workstation_count(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - // xbt_assert1( task->state_set != sd_global->scheduled_task_set, + xbt_assert(task != NULL, "Invalid parameter"); + //xbt_assert(task->state_set != sd_global->scheduled_task_set, // "Unscheduled task %s", task->name); return task->workstation_nb; } @@ -255,8 +255,8 @@ int SD_task_get_workstation_count(SD_task_t task) SD_workstation_t *SD_task_get_workstation_list(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - //xbt_assert1( task->state_set != sd_global->scheduled_task_set, + xbt_assert(task != NULL, "Invalid parameter"); + //xbt_assert(task->state_set != sd_global->scheduled_task_set, // "Unscheduled task %s", task->name); return task->workstation_list; } @@ -271,7 +271,7 @@ SD_workstation_t *SD_task_get_workstation_list(SD_task_t task) double SD_task_get_amount(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); return task->amount; } @@ -285,7 +285,7 @@ double SD_task_get_amount(SD_task_t task) double SD_task_get_remaining_amount(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); if (task->surf_action) return surf_workstation_model->get_remains(task->surf_action); @@ -401,25 +401,25 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_dependency_t dependency; SD_CHECK_INIT_DONE(); - xbt_assert0(src != NULL && dst != NULL, "Invalid parameter"); + xbt_assert(src != NULL && dst != NULL, "Invalid parameter"); dynar = src->tasks_after; length = xbt_dynar_length(dynar); if (src == dst) - THROW1(arg_error, 0, + THROWF(arg_error, 0, "Cannot add a dependency between task '%s' and itself", SD_task_get_name(src)); if (!__SD_task_is_not_scheduled(src) && !__SD_task_is_schedulable(src) && !__SD_task_is_scheduled_or_runnable(src)) - THROW1(arg_error, 0, + THROWF(arg_error, 0, "Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED or SD_RUNNABLE", SD_task_get_name(src)); if (!__SD_task_is_not_scheduled(dst) && !__SD_task_is_schedulable(dst) && !__SD_task_is_scheduled_or_runnable(dst)) - THROW1(arg_error, 0, + THROWF(arg_error, 0, "Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED or SD_RUNNABLE", SD_task_get_name(dst)); @@ -433,7 +433,7 @@ void SD_task_dependency_add(const char *name, void *data, SD_task_t src, } if (found) - THROW2(arg_error, 0, + THROWF(arg_error, 0, "A dependency already exists between task '%s' and task '%s'", SD_task_get_name(src), SD_task_get_name(dst)); @@ -479,7 +479,7 @@ int SD_task_dependency_exists(SD_task_t src, SD_task_t dst) SD_dependency_t dependency; SD_CHECK_INIT_DONE(); - xbt_assert0(src != NULL + xbt_assert(src != NULL || dst != NULL, "Invalid parameter: both src and dst are NULL"); @@ -515,7 +515,7 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst) SD_dependency_t dependency; SD_CHECK_INIT_DONE(); - xbt_assert0(src != NULL && dst != NULL, "Invalid parameter"); + xbt_assert(src != NULL && dst != NULL, "Invalid parameter"); /* remove the dependency from src->tasks_after */ dynar = src->tasks_after; @@ -529,7 +529,7 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst) } } if (!found) - THROW4(arg_error, 0, + THROWF(arg_error, 0, "No dependency found between task '%s' and '%s': task '%s' is not a successor of task '%s'", SD_task_get_name(src), SD_task_get_name(dst), SD_task_get_name(dst), SD_task_get_name(src)); @@ -550,7 +550,7 @@ void SD_task_dependency_remove(SD_task_t src, SD_task_t dst) } } /* should never happen... */ - xbt_assert4(found, + xbt_assert(found, "SimDag error: task '%s' is a successor of '%s' but task '%s' is not a predecessor of task '%s'", SD_task_get_name(dst), SD_task_get_name(src), SD_task_get_name(src), SD_task_get_name(dst)); @@ -590,7 +590,7 @@ void *SD_task_dependency_get_data(SD_task_t src, SD_task_t dst) SD_CHECK_INIT_DONE(); - xbt_assert0(src != NULL && dst != NULL, "Invalid parameter"); + xbt_assert(src != NULL && dst != NULL, "Invalid parameter"); dynar = src->tasks_after; length = xbt_dynar_length(dynar); @@ -600,7 +600,7 @@ void *SD_task_dependency_get_data(SD_task_t src, SD_task_t dst) found = (dependency->dst == dst); } if (!found) - THROW2(arg_error, 0, "No dependency found between task '%s' and '%s'", + THROWF(arg_error, 0, "No dependency found between task '%s' and '%s'", SD_task_get_name(src), SD_task_get_name(dst)); return dependency->data; } @@ -643,10 +643,10 @@ static void __SD_print_watch_points(SD_task_t task) void SD_task_watch(SD_task_t task, e_SD_task_state_t state) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); if (state & SD_NOT_SCHEDULED) - THROW0(arg_error, 0, + THROWF(arg_error, 0, "Cannot add a watch point for state SD_NOT_SCHEDULED"); task->watch_points = task->watch_points | state; @@ -663,8 +663,8 @@ void SD_task_watch(SD_task_t task, e_SD_task_state_t state) void SD_task_unwatch(SD_task_t task, e_SD_task_state_t state) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - xbt_assert0(state != SD_NOT_SCHEDULED, + xbt_assert(task != NULL, "Invalid parameter"); + xbt_assert(state != SD_NOT_SCHEDULED, "SimDag error: Cannot have a watch point for state SD_NOT_SCHEDULED"); task->watch_points = task->watch_points & ~state; @@ -694,7 +694,7 @@ double SD_task_get_execution_time(SD_task_t task, double time, max_time = 0.0; int i, j; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL && workstation_nb > 0 + xbt_assert(task != NULL && workstation_nb > 0 && workstation_list != NULL, "Invalid parameter"); /* the task execution time is the maximum execution time of the parallel tasks */ @@ -728,7 +728,7 @@ static XBT_INLINE void SD_task_do_schedule(SD_task_t task) SD_CHECK_INIT_DONE(); if (!__SD_task_is_not_scheduled(task) && !__SD_task_is_schedulable(task)) - THROW1(arg_error, 0, "Task '%s' has already been scheduled", + THROWF(arg_error, 0, "Task '%s' has already been scheduled", SD_task_get_name(task)); /* update the task state */ @@ -746,7 +746,7 @@ static XBT_INLINE void SD_task_do_schedule(SD_task_t task) * i.e. when its dependencies are satisfied. * * \param task the task you want to schedule - * \param workstation_nb number of workstations on which the task will be executed + * \param workstation_count number of workstations on which the task will be executed * \param workstation_list the workstations on which the task will be executed * \param computation_amount computation amount for each workstation * \param communication_amount communication amount between each pair of workstations @@ -761,7 +761,7 @@ void SD_task_schedule(SD_task_t task, int workstation_count, int communication_nb; task->workstation_nb = 0; task->rate = -1; - xbt_assert0(workstation_count > 0, "workstation_nb must be positive"); + xbt_assert(workstation_count > 0, "workstation_nb must be positive"); task->workstation_nb = workstation_count; task->rate = rate; @@ -809,13 +809,13 @@ void SD_task_schedule(SD_task_t task, int workstation_count, void SD_task_unschedule(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); if (task->state_set != sd_global->scheduled_task_set && task->state_set != sd_global->runnable_task_set && task->state_set != sd_global->running_task_set && task->state_set != sd_global->failed_task_set) - THROW1(arg_error, 0, + THROWF(arg_error, 0, "Task %s: the state must be SD_SCHEDULED, SD_RUNNABLE, SD_RUNNING or SD_FAILED", SD_task_get_name(task)); @@ -842,7 +842,7 @@ static void __SD_task_destroy_scheduling_data(SD_task_t task) SD_CHECK_INIT_DONE(); if (!__SD_task_is_scheduled_or_runnable(task) && !__SD_task_is_in_fifo(task)) - THROW1(arg_error, 0, + THROWF(arg_error, 0, "Task '%s' must be SD_SCHEDULED, SD_RUNNABLE or SD_IN_FIFO", SD_task_get_name(task)); @@ -862,11 +862,11 @@ void __SD_task_really_run(SD_task_t task) void **surf_workstations; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - xbt_assert2(__SD_task_is_runnable_or_in_fifo(task), + xbt_assert(task != NULL, "Invalid parameter"); + xbt_assert(__SD_task_is_runnable_or_in_fifo(task), "Task '%s' is not runnable or in a fifo! Task state: %d", SD_task_get_name(task), SD_task_get_state(task)); - xbt_assert1(task->workstation_list != NULL, + xbt_assert(task->workstation_list != NULL, "Task '%s': workstation_list is NULL!", SD_task_get_name(task)); @@ -879,7 +879,7 @@ void __SD_task_really_run(SD_task_t task) if (SD_workstation_get_access_mode(task->workstation_list[i]) == SD_WORKSTATION_SEQUENTIAL_ACCESS) { task->workstation_list[i]->current_task = task; - xbt_assert0(__SD_workstation_is_busy(task->workstation_list[i]), + xbt_assert(__SD_workstation_is_busy(task->workstation_list[i]), "The workstation should be busy now"); } } @@ -966,7 +966,7 @@ void __SD_task_really_run(SD_task_t task) __SD_task_destroy_scheduling_data(task); /* now the scheduling data are not useful anymore */ __SD_task_set_state(task, SD_RUNNING); - xbt_assert2(__SD_task_is_running(task), "Bad state of task '%s': %d", + xbt_assert(__SD_task_is_running(task), "Bad state of task '%s': %d", SD_task_get_name(task), SD_task_get_state(task)); } @@ -985,8 +985,8 @@ int __SD_task_try_to_run(SD_task_t task) SD_workstation_t workstation; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - xbt_assert2(__SD_task_is_runnable(task), + xbt_assert(task != NULL, "Invalid parameter"); + xbt_assert(__SD_task_is_runnable(task), "Task '%s' is not runnable! Task state: %d", SD_task_get_name(task), SD_task_get_state(task)); @@ -1009,7 +1009,7 @@ int __SD_task_try_to_run(SD_task_t task) } } __SD_task_set_state(task, SD_IN_FIFO); - xbt_assert2(__SD_task_is_in_fifo(task), "Bad state of task '%s': %d", + xbt_assert(__SD_task_is_in_fifo(task), "Bad state of task '%s': %d", SD_task_get_name(task), SD_task_get_state(task)); XBT_DEBUG("Task '%s' state is now SD_IN_FIFO", SD_task_get_name(task)); } else { @@ -1035,11 +1035,11 @@ void __SD_task_just_done(SD_task_t task) int can_start = 1; SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); - xbt_assert1(__SD_task_is_running(task), + xbt_assert(task != NULL, "Invalid parameter"); + xbt_assert(__SD_task_is_running(task), "The task must be running! Task state: %d", SD_task_get_state(task)); - xbt_assert1(task->workstation_list != NULL, + xbt_assert(task->workstation_list != NULL, "Task '%s': workstation_list is NULL!", SD_task_get_name(task)); @@ -1059,10 +1059,10 @@ void __SD_task_just_done(SD_task_t task) XBT_DEBUG("Workstation '%s': access_mode = %d", SD_workstation_get_name(workstation), workstation->access_mode); if (workstation->access_mode == SD_WORKSTATION_SEQUENTIAL_ACCESS) { - xbt_assert1(workstation->task_fifo != NULL, + xbt_assert(workstation->task_fifo != NULL, "Workstation '%s' has sequential access but no fifo!", SD_workstation_get_name(workstation)); - xbt_assert2(workstation->current_task = + xbt_assert(workstation->current_task = task, "Workstation '%s': current task should be '%s'", SD_workstation_get_name(workstation), SD_task_get_name(task)); @@ -1077,7 +1077,7 @@ void __SD_task_just_done(SD_task_t task) if (candidate != NULL) { XBT_DEBUG("Candidate: '%s'", SD_task_get_name(candidate)); - xbt_assert2(__SD_task_is_in_fifo(candidate), + xbt_assert(__SD_task_is_in_fifo(candidate), "Bad state of candidate '%s': %d", SD_task_get_name(candidate), SD_task_get_state(candidate)); @@ -1117,7 +1117,7 @@ void __SD_task_just_done(SD_task_t task) continue; /* we have already evaluated that task */ } - xbt_assert2(__SD_task_is_in_fifo(candidate), + xbt_assert(__SD_task_is_in_fifo(candidate), "Bad state of candidate '%s': %d", SD_task_get_name(candidate), SD_task_get_state(candidate)); @@ -1146,7 +1146,7 @@ void __SD_task_just_done(SD_task_t task) XBT_DEBUG("Head of the fifo: '%s'", (candidate != NULL) ? SD_task_get_name(candidate) : "NULL"); - xbt_assert0(candidate == candidates[i], + xbt_assert(candidate == candidates[i], "Error in __SD_task_just_done: bad first task in the fifo"); } } /* for each workstation */ @@ -1160,7 +1160,7 @@ void __SD_task_just_done(SD_task_t task) ("Calling __SD_task_is_running: task '%s', state set: %p, running_task_set: %p, is running: %d", SD_task_get_name(candidate), candidate->state_set, sd_global->running_task_set, __SD_task_is_running(candidate)); - xbt_assert2(__SD_task_is_running(candidate), + xbt_assert(__SD_task_is_running(candidate), "Bad state of task '%s': %d", SD_task_get_name(candidate), SD_task_get_state(candidate)); @@ -1202,7 +1202,7 @@ static void __SD_task_remove_dependencies(SD_task_t task) double SD_task_get_start_time(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); if (task->surf_action) return surf_workstation_model-> action_get_start_time(task->surf_action); @@ -1224,7 +1224,7 @@ double SD_task_get_start_time(SD_task_t task) double SD_task_get_finish_time(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); if (task->surf_action) /* should never happen as actions are destroyed right after their completion */ return surf_workstation_model-> @@ -1244,7 +1244,7 @@ double SD_task_get_finish_time(SD_task_t task) void SD_task_destroy(SD_task_t task) { SD_CHECK_INIT_DONE(); - xbt_assert0(task != NULL, "Invalid parameter"); + xbt_assert(task != NULL, "Invalid parameter"); XBT_DEBUG("Destroying task %s...", SD_task_get_name(task)); @@ -1358,7 +1358,7 @@ void SD_task_schedulev(SD_task_t task, int count, int i; SD_dependency_t dep; unsigned int cpt; - xbt_assert1(task->kind != 0, + xbt_assert(task->kind != 0, "Task %s is not typed. Cannot automatically schedule it.", SD_task_get_name(task)); switch (task->kind) { @@ -1370,8 +1370,8 @@ void SD_task_schedulev(SD_task_t task, int count, SD_task_do_schedule(task); break; default: - xbt_die(bprintf("Kind of task %s not supported by SD_task_schedulev()", - SD_task_get_name(task))); + xbt_die("Kind of task %s not supported by SD_task_schedulev()", + SD_task_get_name(task)); } if (task->kind == SD_TASK_COMM_E2E) { XBT_VERB("Schedule comm task %s between %s -> %s. It costs %.f bytes",