-lock success callback
authorSree Harsha Totakura <totakura@in.tum.de>
Sat, 28 Apr 2012 13:18:36 +0000 (13:18 +0000)
committerSree Harsha Totakura <totakura@in.tum.de>
Sat, 28 Apr 2012 13:18:36 +0000 (13:18 +0000)
src/lockmanager/lockmanager_api.c
src/lockmanager/test_lockmanager_api.c

index 6524c7134a8aaeffb6a6fd9d9064f1d79571f537..a026513c95f6a607f461947444d7bde350ee0316 100644 (file)
@@ -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;
index 9137768e8c994d0c75a027ae35af6cd1469ede6d..117517e6eecb6fb22cc4399a43354ea4eaf215cf 100644 (file)
@@ -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);
 }