Procházet zdrojové kódy

Fix atomicity of adding a comb to a perfmodel

Samuel Thibault před 8 roky
rodič
revize
c387b751ad
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      src/core/perfmodel/perfmodel_history.c

+ 2 - 2
src/core/perfmodel/perfmodel_history.c

@@ -1650,6 +1650,8 @@ void _starpu_update_perfmodel_history(struct _starpu_job *j, struct starpu_perfm
 		unsigned found = 0;
 		int comb = _starpu_perfmodel_create_comb_if_needed(arch);
 
+		STARPU_PTHREAD_RWLOCK_WRLOCK(&model->state->model_rwlock);
+
 		for(c = 0; c < model->state->ncombs; c++)
 		{
 			if(model->state->combs[c] == comb)
@@ -1659,8 +1661,6 @@ void _starpu_update_perfmodel_history(struct _starpu_job *j, struct starpu_perfm
 			}
 		}
 
-		STARPU_PTHREAD_RWLOCK_WRLOCK(&model->state->model_rwlock);
-
 		if(!found)
 		{
 			if (model->state->ncombs + 1 >= model->state->ncombs_set)