- e_SD_task_state_t state = SD_task_get_state(task);
- xbt_assert1(state == SD_SCHEDULED ||
- state == SD_RUNNING ||
- state == SD_FAILED,
- "Task %s: the state must be SD_SCHEDULED, SD_RUNNING or SD_FAILED", SD_task_get_name(task));
-
- if (state == SD_SCHEDULED)
+ xbt_assert1(task->state_set == sd_global->scheduled_task_set ||
+ task->state_set == sd_global->ready_task_set ||
+ task->state_set == sd_global->running_task_set ||
+ task->state_set == sd_global->failed_task_set,
+ "Task %s: the state must be SD_SCHEDULED, SD_READY, SD_RUNNING or SD_FAILED",
+ SD_task_get_name(task));
+
+ if (__SD_task_is_scheduled_or_ready(task)) /* if the task is scheduled or ready */