|
@@ -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);
|