{
struct GNUNET_LOCKMANAGER_LockingRequest *r = value;
- if ( !((0 != strcmp (domain, r->domain))
+ if ( !((0 == strcmp (domain, r->domain))
&& (lock == r->lock)))
return GNUNET_YES;
r->lock = lock;
r->domain = GNUNET_malloc (r->domain_name_length);
r->status = GNUNET_LOCKMANAGER_RELEASE;
+ r->status_cb = status_cb;
+ r->status_cb_cls = status_cb_cls;
memcpy (r->domain, domain_name, r->domain_name_length);
msg_size = sizeof (struct GNUNET_LOCKMANAGER_Message) + r->domain_name_length;
*/
static struct GNUNET_LOCKMANAGER_LockingRequest *request;
+/**
+ * Abort task identifier
+ */
+static GNUNET_SCHEDULER_TaskIdentifier abort_task_id;
+
/**
* Shutdown nicely
*
static void
do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
{
+ if (GNUNET_SCHEDULER_NO_TASK != abort_task_id)
+ {
+ GNUNET_SCHEDULER_cancel (abort_task_id);
+ abort_task_id = GNUNET_SCHEDULER_NO_TASK;
+ }
+
if (NULL != request)
{
GNUNET_LOCKMANAGER_cancel_request (request);
static void
do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
{
+ abort_task_id = GNUNET_SCHEDULER_NO_TASK;
result = GNUNET_SYSERR;
do_shutdown (cls, tc);
}
99,
&status_cb,
NULL);
- GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (10),
- &do_abort,
- NULL);
+ abort_task_id = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (10),
+ &do_abort,
+ NULL);
}