Pārlūkot izejas kodu

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

Samuel Thibault 7 gadi atpakaļ
vecāks
revīzija
dac2371224
1 mainītis faili ar 7 papildinājumiem un 0 dzēšanām
  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);
 }