ソースを参照

drop parallel_sect_cond_busy

Olivier Aumage 8 年 前
コミット
7888bd5faa
共有3 個のファイルを変更した3 個の追加8 個の削除を含む
  1. 1 3
      src/core/sched_ctx.c
  2. 0 3
      src/core/sched_ctx.h
  3. 2 2
      src/drivers/driver_common/driver_common.c

+ 1 - 3
src/core/sched_ctx.c

@@ -550,8 +550,6 @@ struct _starpu_sched_ctx* _starpu_create_sched_ctx(struct starpu_sched_policy *p
 		sem_init(&sched_ctx->fall_asleep_sem[w], 0, 0);
 		sem_init(&sched_ctx->wake_up_sem[w], 0, 0);
 
-		STARPU_PTHREAD_COND_INIT(&sched_ctx->parallel_sect_cond_busy[w], NULL);
-
 		sched_ctx->parallel_sect[w] = 0;
 		sched_ctx->sleeping[w] = 0;
 	}
@@ -1124,7 +1122,7 @@ void starpu_sched_ctx_delete(unsigned sched_ctx_id)
 			struct _starpu_worker *worker = _starpu_get_worker_struct(backup_workerids[w]);
 			while (worker->state_busy_in_parallel)
 			{
-				STARPU_PTHREAD_COND_WAIT(&sched_ctx->parallel_sect_cond_busy[w], &worker->sched_mutex);
+				STARPU_PTHREAD_COND_WAIT(&worker->sched_cond, &worker->sched_mutex);
 			}
 		}
 		_starpu_sched_ctx_free_scheduling_data(sched_ctx);

+ 0 - 3
src/core/sched_ctx.h

@@ -127,9 +127,6 @@ struct _starpu_sched_ctx
 	   if not master is -1 */
 	int main_master;
 
-	/* conditions variables used when parallel sections are executed in contexts */
-	starpu_pthread_cond_t parallel_sect_cond_busy[STARPU_NMAXWORKERS];
-
 	/* boolean indicating that workers should block in order to allow
 	   parallel sections to be executed on their allocated resources */
 	unsigned parallel_sect[STARPU_NMAXWORKERS];

+ 2 - 2
src/drivers/driver_common/driver_common.c

@@ -376,7 +376,7 @@ struct starpu_task *_starpu_get_worker_task(struct _starpu_worker *worker, int w
 					}
 					while (worker->state_wait_ack__busy_in_parallel);
 					worker->state_busy_in_parallel = 0;
-					STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
+					STARPU_PTHREAD_COND_BROADCAST(&worker->sched_cond);
 					_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
 					sched_ctx->parallel_sect[workerid] = 0;
 				}
@@ -400,7 +400,7 @@ struct starpu_task *_starpu_get_worker_task(struct _starpu_worker *worker, int w
 				}
 				while (worker->state_wait_ack__busy_in_parallel);
 				worker->state_busy_in_parallel = 0;
-				STARPU_PTHREAD_COND_SIGNAL(&sched_ctx->parallel_sect_cond_busy[workerid]);
+				STARPU_PTHREAD_COND_BROADCAST(&worker->sched_cond);
 				_starpu_sched_ctx_signal_worker_woke_up(sched_ctx->id, workerid);
 				sched_ctx->parallel_sect[workerid] = 0;
 			}