|
@@ -81,9 +81,11 @@ void _starpu_task_declare_deps_array(struct starpu_task *task, unsigned ndeps, s
|
|
|
dep_job = _starpu_get_job_associated_to_task(dep_task);
|
|
|
|
|
|
STARPU_ASSERT_MSG(dep_job != job, "A task must not depend on itself.");
|
|
|
- if (check)
|
|
|
- STARPU_ASSERT_MSG(!dep_job->submitted || !dep_job->task->destroy || dep_job->task->detach, "Task dependencies have to be set before submission");
|
|
|
- else
|
|
|
+ if (check) {
|
|
|
+ STARPU_ASSERT_MSG(!dep_job->submitted || !dep_job->task->destroy || dep_job->task->detach, "Unless it is not to be destroyed automatically, a task dependencies have to be set before submission");
|
|
|
+ STARPU_ASSERT_MSG(dep_job->submitted != 2, "For resubmited tasks, dependencies have to be set before first re-submission");
|
|
|
+ STARPU_ASSERT_MSG(!dep_job->submitted || !dep_job->task->regenerate, "For regenerated tasks, dependencies have to be set before first submission");
|
|
|
+ } else
|
|
|
STARPU_ASSERT_MSG(dep_job->terminated <= 1, "Task dependencies have to be set before termination");
|
|
|
|
|
|
_STARPU_TRACE_TASK_DEPS(dep_job, job);
|