From efb384696f12a074fd3c3960d662fd27ee874373 Mon Sep 17 00:00:00 2001 From: Sree Harsha Totakura Date: Sat, 28 Apr 2012 13:18:36 +0000 Subject: -lock success callback --- src/lockmanager/lockmanager_api.c | 4 +++- src/lockmanager/test_lockmanager_api.c | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src/lockmanager') diff --git a/src/lockmanager/lockmanager_api.c b/src/lockmanager/lockmanager_api.c index 6524c7134..a026513c9 100644 --- a/src/lockmanager/lockmanager_api.c +++ b/src/lockmanager/lockmanager_api.c @@ -207,7 +207,7 @@ handle_replies (void *cls, { struct GNUNET_LOCKMANAGER_LockingRequest *r = value; - if ( !((0 != strcmp (domain, r->domain)) + if ( !((0 == strcmp (domain, r->domain)) && (lock == r->lock))) return GNUNET_YES; @@ -403,6 +403,8 @@ GNUNET_LOCKMANAGER_acquire_lock (struct GNUNET_LOCKMANAGER_Handle *handle, 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; diff --git a/src/lockmanager/test_lockmanager_api.c b/src/lockmanager/test_lockmanager_api.c index 9137768e8..117517e6e 100644 --- a/src/lockmanager/test_lockmanager_api.c +++ b/src/lockmanager/test_lockmanager_api.c @@ -63,6 +63,11 @@ static struct GNUNET_LOCKMANAGER_Handle *handle; */ static struct GNUNET_LOCKMANAGER_LockingRequest *request; +/** + * Abort task identifier + */ +static GNUNET_SCHEDULER_TaskIdentifier abort_task_id; + /** * Shutdown nicely * @@ -72,6 +77,12 @@ static struct GNUNET_LOCKMANAGER_LockingRequest *request; 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); @@ -99,6 +110,7 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) 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); } @@ -144,9 +156,9 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *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); } -- cgit v1.2.3