소스 검색

rollback r12518: don't allow unregister in callback or task codelets

Andra Hugo 11 년 전
부모
커밋
aed609a645
3개의 변경된 파일1개의 추가작업 그리고 13개의 파일을 삭제
  1. 0 8
      src/core/workers.c
  2. 0 1
      src/core/workers.h
  3. 1 4
      src/datawizard/interfaces/data_interface.c

+ 0 - 8
src/core/workers.c

@@ -1952,11 +1952,3 @@ unsigned starpu_worker_get_sched_ctx_list(int workerid, unsigned **sched_ctxs)
 	return nsched_ctxs;
 }
 
-unsigned _starpu_worker_have_only_CPUs()
-{
-	int i;
-	for(i = 0; i < STARPU_NMAXWORKERS; i++)
-		if(config.workers[i].arch != STARPU_CPU_WORKER)
-			return 0;
-	return 1;
-}

+ 0 - 1
src/core/workers.h

@@ -435,5 +435,4 @@ unsigned _starpu_worker_mutex_is_sched_mutex(int workerid, starpu_pthread_mutex_
 
 int _starpu_worker_get_nsched_ctxs(int workerid);
 
-unsigned _starpu_worker_have_only_CPUs(void);
 #endif // __WORKERS_H__

+ 1 - 4
src/datawizard/interfaces/data_interface.c

@@ -615,11 +615,8 @@ static void _starpu_data_unregister(starpu_data_handle_t handle, unsigned cohere
 	STARPU_ASSERT_MSG(handle->nchildren == 0, "data %p needs to be unpartitioned before unregistration", handle);
 	STARPU_ASSERT(!(nowait && handle->busy_count != 0));
 
-	/* no need to forbid the unregister in a task or callback when we have only CPUs,
-	   the data is on the RAM anyway */
-	unsigned only_cpus = _starpu_worker_have_only_CPUs();
 	int sequential_consistency = handle->sequential_consistency;
-	if (sequential_consistency && !nowait && !only_cpus)
+	if (sequential_consistency && !nowait)
 	{
 		STARPU_ASSERT_MSG(_starpu_worker_may_perform_blocking_calls(), "starpu_data_unregister must not be called from a task or callback, perhaps you can use starpu_data_unregister_submit instead");