aboutsummaryrefslogtreecommitdiff
path: root/src/lockmanager
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-04-28 13:18:36 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-04-28 13:18:36 +0000
commitefb384696f12a074fd3c3960d662fd27ee874373 (patch)
tree5ce75b2e4c5e893140fa46babf373854385aece9 /src/lockmanager
parent4761d5671197ba3a125d66c672b5f5165ba83481 (diff)
downloadgnunet-efb384696f12a074fd3c3960d662fd27ee874373.tar.gz
gnunet-efb384696f12a074fd3c3960d662fd27ee874373.zip
-lock success callback
Diffstat (limited to 'src/lockmanager')
-rw-r--r--src/lockmanager/lockmanager_api.c4
-rw-r--r--src/lockmanager/test_lockmanager_api.c18
2 files changed, 18 insertions, 4 deletions
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,
207 { 207 {
208 struct GNUNET_LOCKMANAGER_LockingRequest *r = value; 208 struct GNUNET_LOCKMANAGER_LockingRequest *r = value;
209 209
210 if ( !((0 != strcmp (domain, r->domain)) 210 if ( !((0 == strcmp (domain, r->domain))
211 && (lock == r->lock))) 211 && (lock == r->lock)))
212 return GNUNET_YES; 212 return GNUNET_YES;
213 213
@@ -403,6 +403,8 @@ GNUNET_LOCKMANAGER_acquire_lock (struct GNUNET_LOCKMANAGER_Handle *handle,
403 r->lock = lock; 403 r->lock = lock;
404 r->domain = GNUNET_malloc (r->domain_name_length); 404 r->domain = GNUNET_malloc (r->domain_name_length);
405 r->status = GNUNET_LOCKMANAGER_RELEASE; 405 r->status = GNUNET_LOCKMANAGER_RELEASE;
406 r->status_cb = status_cb;
407 r->status_cb_cls = status_cb_cls;
406 memcpy (r->domain, domain_name, r->domain_name_length); 408 memcpy (r->domain, domain_name, r->domain_name_length);
407 409
408 msg_size = sizeof (struct GNUNET_LOCKMANAGER_Message) + r->domain_name_length; 410 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
@@ -64,6 +64,11 @@ static struct GNUNET_LOCKMANAGER_Handle *handle;
64static struct GNUNET_LOCKMANAGER_LockingRequest *request; 64static struct GNUNET_LOCKMANAGER_LockingRequest *request;
65 65
66/** 66/**
67 * Abort task identifier
68 */
69static GNUNET_SCHEDULER_TaskIdentifier abort_task_id;
70
71/**
67 * Shutdown nicely 72 * Shutdown nicely
68 * 73 *
69 * @param cls 74 * @param cls
@@ -72,6 +77,12 @@ static struct GNUNET_LOCKMANAGER_LockingRequest *request;
72static void 77static void
73do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) 78do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
74{ 79{
80 if (GNUNET_SCHEDULER_NO_TASK != abort_task_id)
81 {
82 GNUNET_SCHEDULER_cancel (abort_task_id);
83 abort_task_id = GNUNET_SCHEDULER_NO_TASK;
84 }
85
75 if (NULL != request) 86 if (NULL != request)
76 { 87 {
77 GNUNET_LOCKMANAGER_cancel_request (request); 88 GNUNET_LOCKMANAGER_cancel_request (request);
@@ -99,6 +110,7 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
99static void 110static void
100do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) 111do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
101{ 112{
113 abort_task_id = GNUNET_SCHEDULER_NO_TASK;
102 result = GNUNET_SYSERR; 114 result = GNUNET_SYSERR;
103 do_shutdown (cls, tc); 115 do_shutdown (cls, tc);
104} 116}
@@ -144,9 +156,9 @@ test (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
144 99, 156 99,
145 &status_cb, 157 &status_cb,
146 NULL); 158 NULL);
147 GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (10), 159 abort_task_id = GNUNET_SCHEDULER_add_delayed (TIME_REL_SECONDS (10),
148 &do_abort, 160 &do_abort,
149 NULL); 161 NULL);
150} 162}
151 163
152 164