Forráskód Böngészése

dm: _dm_push_task: properly lock the right sched_mutex.

Cyril Roelandt 12 éve
szülő
commit
225eba661a
1 módosított fájl, 2 hozzáadás és 1 törlés
  1. 2 1
      src/sched_policies/deque_modeling_policy_data_aware.c

+ 2 - 1
src/sched_policies/deque_modeling_policy_data_aware.c

@@ -347,9 +347,10 @@ static int _dm_push_task(struct starpu_task *task, unsigned prio)
 			fifo = queue_array[worker];
 
 			/* Sometimes workers didn't take the tasks as early as we expected */
+			_STARPU_PTHREAD_MUTEX_LOCK(&sched_mutex[worker]);
 			fifo->exp_start = STARPU_MAX(fifo->exp_start, starpu_timing_now());
 			fifo->exp_end = fifo->exp_start + fifo->exp_len;
-
+			_STARPU_PTHREAD_MUTEX_UNLOCK(&sched_mutex[worker]);
 
 			enum starpu_perf_archtype perf_arch = starpu_worker_get_perf_archtype(worker);
 			double local_length = starpu_task_expected_length(task, perf_arch, nimpl);