Explorar o código

Fix atomicity of adding a comb to a perfmodel

Samuel Thibault %!s(int64=8) %!d(string=hai) anos
pai
achega
c387b751ad
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  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)