aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/set/set_api.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/set/set_api.c b/src/set/set_api.c
index 5b5b1b8eec..04a4e49108 100644
--- a/src/set/set_api.c
+++ b/src/set/set_api.c
@@ -349,6 +349,9 @@ handle_iter_done (void *cls,
set->iteration_id++;
iter (set->iterator_cls,
NULL);
+
+ if (GNUNET_YES == set->destroy_requested)
+ GNUNET_SET_destroy (set);
}
@@ -733,8 +736,7 @@ GNUNET_SET_destroy (struct GNUNET_SET_Handle *set)
/* destroying set while iterator is active is currently
not supported; we should expand the API to allow
clients to explicitly cancel the iteration! */
- GNUNET_assert (NULL == set->iterator);
- if (NULL != set->ops_head)
+ if ( (NULL != set->ops_head) || (NULL != set->iterator) )
{
LOG (GNUNET_ERROR_TYPE_DEBUG,
"Set operations are pending, delaying set destruction\n");