XBT_DEBUG("Destroying task %s...", SD_task_get_name(task));
__SD_task_remove_dependencies(task);
- /* if the task was scheduled or runnable we have to free the scheduling parameters */
- if (__SD_task_is_scheduled_or_runnable(task))
+
+ if (task->state == SD_SCHEDULED || task->state == SD_RUNNABLE)
__SD_task_destroy_scheduling_data(task);
idx = xbt_dynar_search_or_negative(sd_global->return_set, &task);
state = SD_task_get_state(src);
if (state != SD_NOT_SCHEDULED && state != SD_SCHEDULABLE &&
- state != SD_RUNNING && !__SD_task_is_scheduled_or_runnable(src))
+ state != SD_RUNNING && state != SD_SCHEDULED && state != SD_RUNNABLE)
THROWF(arg_error, 0,
"Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED,"
" SD_RUNNABLE or SD_RUNNING", SD_task_get_name(src));
state = SD_task_get_state(dst);
if (state != SD_NOT_SCHEDULED && state != SD_SCHEDULABLE &&
- !__SD_task_is_scheduled_or_runnable(dst))
+ state != SD_SCHEDULED && state != SD_RUNNABLE)
THROWF(arg_error, 0,
"Task '%s' must be SD_NOT_SCHEDULED, SD_SCHEDULABLE, SD_SCHEDULED,"
"or SD_RUNNABLE", SD_task_get_name(dst));
"Task %s: the state must be SD_SCHEDULED, SD_RUNNABLE, SD_RUNNING or SD_FAILED",
SD_task_get_name(task));
- if (__SD_task_is_scheduled_or_runnable(task) /* if the task is scheduled or runnable */
+ if ((task->state == SD_SCHEDULED || task->state == SD_RUNNABLE)
+ /* if the task is scheduled or runnable */
&& ((task->kind == SD_TASK_COMP_PAR_AMDAHL) ||
(task->kind == SD_TASK_COMM_PAR_MXN_1D_BLOCK))) { /* Don't free scheduling data for typed tasks */
__SD_task_destroy_scheduling_data(task);
*/
static void __SD_task_destroy_scheduling_data(SD_task_t task)
{
- if (!__SD_task_is_scheduled_or_runnable(task))
+ if (task->state != SD_SCHEDULED && task->state != SD_RUNNABLE)
THROWF(arg_error, 0,
"Task '%s' must be SD_SCHEDULED or SD_RUNNABLE",
SD_task_get_name(task));
#define SIMDAG_PRIVATE_H
#include "xbt/base.h"
-#include "xbt/dict.h"
#include "xbt/dynar.h"
#include "simgrid/simdag.h"
#include "surf/surf.h"
XBT_PRIVATE void SD_task_recycle_f(void *t);
XBT_PRIVATE void SD_task_free_f(void *t);
-/* Functions to test if the task is in a given state. */
-
-/* Returns whether the given task is scheduled or runnable. */
-static XBT_INLINE int __SD_task_is_scheduled_or_runnable(SD_task_t task)
-{
- return task->state == SD_SCHEDULED || task->state == SD_RUNNABLE;
-}
-
SG_END_DECL()
-
#endif