|
@@ -1,7 +1,7 @@
|
|
|
/* StarPU --- Runtime system for heterogeneous multicore architectures.
|
|
|
*
|
|
|
* Copyright (C) 2011-2017 CNRS
|
|
|
- * Copyright (C) 2011-2015,2017 Université de Bordeaux
|
|
|
+ * Copyright (C) 2011-2015,2017-2018 Université de Bordeaux
|
|
|
* Copyright (C) 2014 Inria
|
|
|
*
|
|
|
* StarPU is free software; you can redistribute it and/or modify
|
|
@@ -95,7 +95,12 @@ void _starpu_mpi_tag_data_register(starpu_data_handle_t handle, starpu_mpi_tag_t
|
|
|
entry->data_tag = data_tag;
|
|
|
|
|
|
_starpu_spin_lock(®istered_tag_handles_lock);
|
|
|
- HASH_ADD_INT(registered_tag_handles, data_tag, entry);
|
|
|
+#ifndef STARPU_NO_ASSERT
|
|
|
+ struct handle_tag_entry *old;
|
|
|
+ HASH_FIND(hh, registered_tag_handles, &data_tag, sizeof(entry->data_tag), old);
|
|
|
+ STARPU_ASSERT_MSG(!old, "tag %"PRIi64" being registered for data %p, but is already used by data %p!\n", data_tag, handle, old->handle);
|
|
|
+#endif
|
|
|
+ HASH_ADD(hh, registered_tag_handles, data_tag, sizeof(entry->data_tag), entry);
|
|
|
_starpu_spin_unlock(®istered_tag_handles_lock);
|
|
|
}
|
|
|
|