set->iteration_id++;
iter (set->iterator_cls,
NULL);
+
+ if (GNUNET_YES == set->destroy_requested)
+ GNUNET_SET_destroy (set);
}
{
oh->result_cb (oh->result_cls,
NULL,
+ GNUNET_ntohll (msg->current_size),
result_status);
}
else
if (NULL != oh->result_cb)
oh->result_cb (oh->result_cls,
&e,
+ GNUNET_ntohll (msg->current_size),
result_status);
}
if (NULL != set->ops_head->result_cb)
set->ops_head->result_cb (set->ops_head->result_cls,
NULL,
+ 0,
GNUNET_SET_STATUS_FAILURE);
set_operation_destroy (set->ops_head);
}
struct GNUNET_MQ_Envelope *mqm;
struct GNUNET_SET_ElementMessage *msg;
+ LOG (GNUNET_ERROR_TYPE_INFO, "adding element of type %u\n", (unsigned) element->element_type);
+
if (GNUNET_YES == set->invalid)
{
if (NULL != cont)
/* 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");