浏览代码

Fix atomicity of adding a comb to a perfmodel

Samuel Thibault 8 年之前
父节点
当前提交
c387b751ad
共有 1 个文件被更改,包括 2 次插入2 次删除
  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)