瀏覽代碼

check worker iterators do not overflow in dm*

Olivier Aumage 8 年之前
父節點
當前提交
4884091088
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/sched_policies/deque_modeling_policy_data_aware.c

+ 2 - 2
src/sched_policies/deque_modeling_policy_data_aware.c

@@ -658,7 +658,7 @@ static void compute_all_performance_predictions(struct starpu_task *task,
 
 	struct starpu_sched_ctx_iterator it;
 	workers->init_iterator_for_parallel_tasks(workers, &it, task);
-	while(workers->has_next(workers, &it))
+	while(worker_ctx<nworkers && workers->has_next(workers, &it))
 	{
 		unsigned nimpl;
 		unsigned impl_mask;
@@ -858,7 +858,7 @@ static double _dmda_push_task(struct starpu_task *task, unsigned prio, unsigned
 		unsigned worker_ctx = 0;
 		struct starpu_sched_ctx_iterator it;
 		workers->init_iterator_for_parallel_tasks(workers, &it, task);
-		while(workers->has_next(workers, &it))
+		while(worker_ctx < nworkers_ctx && workers->has_next(workers, &it))
 		{
 			unsigned worker = workers->get_next(workers, &it);
 			unsigned nimpl;