소스 검색

We need to remove handles from the cache hash when unregistering them

Samuel Thibault 8 년 전
부모
커밋
dac2371224
1개의 변경된 파일7개의 추가작업 그리고 0개의 파일을 삭제
  1. 7 0
      mpi/src/starpu_mpi_cache.c

+ 7 - 0
mpi/src/starpu_mpi_cache.c

@@ -104,12 +104,19 @@ void _starpu_mpi_cache_shutdown()
 void _starpu_mpi_cache_data_clear(starpu_data_handle_t data_handle)
 {
 	struct _starpu_mpi_data *mpi_data = data_handle->mpi_data;
+	struct _starpu_data_entry *entry;
 
 	if (_starpu_cache_enabled == 0) return;
 
 	STARPU_PTHREAD_MUTEX_LOCK(&_cache_mutex);
 	_starpu_mpi_cache_flush_nolock(data_handle);
 	free(mpi_data->cache_sent);
+	HASH_FIND_PTR(_cache_data, &data_handle, entry);
+	if (entry != NULL)
+	{
+		HASH_DEL(_cache_data, entry);
+		free(entry);
+	}
 	STARPU_PTHREAD_MUTEX_UNLOCK(&_cache_mutex);
 }