Bladeren bron

Fix missing spinlocks

Samuel Thibault 13 jaren geleden
bovenliggende
commit
afa3591099
2 gewijzigde bestanden met toevoegingen van 4 en 2 verwijderingen
  1. 2 1
      src/core/perfmodel/perfmodel.c
  2. 2 1
      src/datawizard/user_interactions.c

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

@@ -288,9 +288,10 @@ double starpu_task_expected_conversion_time(struct starpu_task *task,
 
 		conversion_task = _starpu_create_conversion_task(handle, node);
 		sum += starpu_task_expected_length(conversion_task, arch, nimpl);
-		_starpu_spin_checklocked(&handle->header_lock);
+		_starpu_spin_lock(&handle->header_lock);
 		handle->refcnt--;
 		handle->busy_count--;
+		_starpu_spin_unlock(&handle->header_lock);
 		starpu_task_deinit(conversion_task);
 		free(conversion_task);
 	}

+ 2 - 1
src/datawizard/user_interactions.c

@@ -216,10 +216,11 @@ int starpu_data_acquire(starpu_data_handle_t handle, enum starpu_access_mode mod
 	{
 		struct starpu_task *task = _starpu_create_conversion_task(handle, 0);
 		int ret;
-		_starpu_spin_checklocked(&handle->header_lock);
+		_starpu_spin_lock(&handle->header_lock);
 		handle->refcnt--;
 		handle->busy_count--;
 		handle->mf_node = 0;
+		_starpu_spin_unlock(&handle->header_lock);
 		task->synchronous = 1;
 		ret = starpu_task_submit(task);
 		STARPU_ASSERT(!ret);