Bläddra i källkod

Fix atomicity of reallocation of comb array in perfmodels

Samuel Thibault 7 år sedan
förälder
incheckning
4953c87f06
1 ändrade filer med 3 tillägg och 2 borttagningar
  1. 3 2
      src/core/perfmodel/perfmodel_history.c

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

@@ -1658,6 +1658,9 @@ void _starpu_update_perfmodel_history(struct _starpu_job *j, struct starpu_perfm
 				break;
 			}
 		}
+
+		STARPU_PTHREAD_RWLOCK_WRLOCK(&model->state->model_rwlock);
+
 		if(!found)
 		{
 			if (model->state->ncombs + 1 >= model->state->ncombs_set)
@@ -1669,8 +1672,6 @@ void _starpu_update_perfmodel_history(struct _starpu_job *j, struct starpu_perfm
 			model->state->combs[model->state->ncombs++] = comb;
 		}
 
-		STARPU_PTHREAD_RWLOCK_WRLOCK(&model->state->model_rwlock);
-
 		if(!model->state->per_arch[comb])
 		{
 			_starpu_perfmodel_malloc_per_arch(model, comb, STARPU_MAXIMPLEMENTATIONS);