瀏覽代碼

pop_every_task should take the mutex of the policy (not the one of the worker)

Andra Hugo 12 年之前
父節點
當前提交
683454b694
共有 1 個文件被更改,包括 2 次插入6 次删除
  1. 2 6
      src/sched_policies/eager_central_policy.c

+ 2 - 6
src/sched_policies/eager_central_policy.c

@@ -113,13 +113,9 @@ static struct starpu_task *pop_every_task_eager_policy(unsigned sched_ctx_id)
 	struct _starpu_eager_center_policy_data *data = (struct _starpu_eager_center_policy_data*)starpu_sched_ctx_get_policy_data(sched_ctx_id);
 	struct _starpu_eager_center_policy_data *data = (struct _starpu_eager_center_policy_data*)starpu_sched_ctx_get_policy_data(sched_ctx_id);
 	int workerid = starpu_worker_get_id();
 	int workerid = starpu_worker_get_id();
 	
 	
-	starpu_pthread_mutex_t *sched_mutex;
-	starpu_pthread_cond_t *sched_cond;
-	starpu_worker_get_sched_condition(workerid, &sched_mutex, &sched_cond);
-	
-	_STARPU_PTHREAD_MUTEX_LOCK(sched_mutex);
+	_STARPU_PTHREAD_MUTEX_LOCK(&data->policy_mutex);
 	struct starpu_task* task = _starpu_fifo_pop_every_task(data->fifo, workerid);
 	struct starpu_task* task = _starpu_fifo_pop_every_task(data->fifo, workerid);
-	_STARPU_PTHREAD_MUTEX_UNLOCK(sched_mutex);
+	_STARPU_PTHREAD_MUTEX_UNLOCK(&data->policy_mutex);
 	return task;
 	return task;
 }
 }