|
@@ -368,9 +368,9 @@ struct starpu_task *_starpu_get_worker_task(struct _starpu_worker *worker, int w
|
|
that can change in another thread */
|
|
that can change in another thread */
|
|
needed = 0;
|
|
needed = 0;
|
|
_starpu_sched_ctx_signal_worker_blocked(sched_ctx->id, workerid);
|
|
_starpu_sched_ctx_signal_worker_blocked(sched_ctx->id, workerid);
|
|
- sched_ctx->busy[workerid] = 1;
|
|
|
|
|
|
+ worker->state_busy_in_parallel = 1;
|
|
STARPU_PTHREAD_COND_WAIT(&sched_ctx->parallel_sect_cond[workerid], &worker->sched_mutex);
|
|
STARPU_PTHREAD_COND_WAIT(&sched_ctx->parallel_sect_cond[workerid], &worker->sched_mutex);
|
|
- sched_ctx->busy[workerid] = 0;
|
|
|
|
|
|
+ worker->state_busy_in_parallel = 0;
|
|
STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
|
|
STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
|
|
_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
|
|
_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
|
|
sched_ctx->parallel_sect[workerid] = 0;
|
|
sched_ctx->parallel_sect[workerid] = 0;
|
|
@@ -387,9 +387,9 @@ struct starpu_task *_starpu_get_worker_task(struct _starpu_worker *worker, int w
|
|
{
|
|
{
|
|
// needed = 0;
|
|
// needed = 0;
|
|
_starpu_sched_ctx_signal_worker_blocked(sched_ctx->id, workerid);
|
|
_starpu_sched_ctx_signal_worker_blocked(sched_ctx->id, workerid);
|
|
- sched_ctx->busy[workerid] = 1;
|
|
|
|
|
|
+ worker->state_busy_in_parallel = 1;
|
|
STARPU_PTHREAD_COND_WAIT(&sched_ctx->parallel_sect_cond[workerid], &worker->sched_mutex);
|
|
STARPU_PTHREAD_COND_WAIT(&sched_ctx->parallel_sect_cond[workerid], &worker->sched_mutex);
|
|
- sched_ctx->busy[workerid] = 0;
|
|
|
|
|
|
+ worker->state_busy_in_parallel = 0;
|
|
STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
|
|
STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
|
|
_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
|
|
_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
|
|
sched_ctx->parallel_sect[workerid] = 0;
|
|
sched_ctx->parallel_sect[workerid] = 0;
|