diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-04-28 13:18:36 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-04-28 13:18:36 +0000 |
commit | efb384696f12a074fd3c3960d662fd27ee874373 (patch) | |
tree | 5ce75b2e4c5e893140fa46babf373854385aece9 /src/lockmanager | |
parent | 4761d5671197ba3a125d66c672b5f5165ba83481 (diff) | |
download | gnunet-efb384696f12a074fd3c3960d662fd27ee874373.tar.gz gnunet-efb384696f12a074fd3c3960d662fd27ee874373.zip |
-lock success callback
Diffstat (limited to 'src/lockmanager')
-rw-r--r-- | src/lockmanager/lockmanager_api.c | 4 | ||||
-rw-r--r-- | src/lockmanager/test_lockmanager_api.c | 18 |
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; | |||
64 | static struct GNUNET_LOCKMANAGER_LockingRequest *request; | 64 | static struct GNUNET_LOCKMANAGER_LockingRequest *request; |
65 | 65 | ||
66 | /** | 66 | /** |
67 | * Abort task identifier | ||
68 | */ | ||
69 | static 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; | |||
72 | static void | 77 | static void |
73 | do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) | 78 | do_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) | |||
99 | static void | 110 | static void |
100 | do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) | 111 | do_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 | ||