diff options
author | Florian Dold <florian.dold@gmail.com> | 2013-03-07 14:12:11 +0000 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2013-03-07 14:12:11 +0000 |
commit | 159e38f1ed94c6b44ca20bc2a78fd5cad7027fd0 (patch) | |
tree | e4e60aec526c9a0ffbe3dd69896d394587e8586a /src/consensus/consensus_api.c | |
parent | 1a17d075effa5fbc3b3521ab0d15b2d035599969 (diff) | |
download | gnunet-159e38f1ed94c6b44ca20bc2a78fd5cad7027fd0.tar.gz gnunet-159e38f1ed94c6b44ca20bc2a78fd5cad7027fd0.zip |
consensus now implemented with primitive conclusion group selection
Diffstat (limited to 'src/consensus/consensus_api.c')
-rw-r--r-- | src/consensus/consensus_api.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/consensus/consensus_api.c b/src/consensus/consensus_api.c index 7ebb0a9d9..e970040e1 100644 --- a/src/consensus/consensus_api.c +++ b/src/consensus/consensus_api.c | |||
@@ -139,6 +139,12 @@ struct GNUNET_CONSENSUS_Handle | |||
139 | 139 | ||
140 | struct QueuedMessage *messages_head; | 140 | struct QueuedMessage *messages_head; |
141 | struct QueuedMessage *messages_tail; | 141 | struct QueuedMessage *messages_tail; |
142 | |||
143 | /** | ||
144 | * GNUNET_YES when currently in a section where destroy may not be | ||
145 | * called. | ||
146 | */ | ||
147 | int may_not_destroy; | ||
142 | }; | 148 | }; |
143 | 149 | ||
144 | 150 | ||
@@ -279,7 +285,9 @@ handle_conclude_done (struct GNUNET_CONSENSUS_Handle *consensus, | |||
279 | struct GNUNET_CONSENSUS_ConcludeDoneMessage *msg) | 285 | struct GNUNET_CONSENSUS_ConcludeDoneMessage *msg) |
280 | { | 286 | { |
281 | GNUNET_assert (NULL != consensus->conclude_cb); | 287 | GNUNET_assert (NULL != consensus->conclude_cb); |
288 | consensus->may_not_destroy = GNUNET_YES; | ||
282 | consensus->conclude_cb (consensus->conclude_cls, NULL); | 289 | consensus->conclude_cb (consensus->conclude_cls, NULL); |
290 | consensus->may_not_destroy = GNUNET_NO; | ||
283 | consensus->conclude_cb = NULL; | 291 | consensus->conclude_cb = NULL; |
284 | } | 292 | } |
285 | 293 | ||
@@ -523,6 +531,11 @@ GNUNET_CONSENSUS_conclude (struct GNUNET_CONSENSUS_Handle *consensus, | |||
523 | void | 531 | void |
524 | GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus) | 532 | GNUNET_CONSENSUS_destroy (struct GNUNET_CONSENSUS_Handle *consensus) |
525 | { | 533 | { |
534 | if (GNUNET_YES == consensus->may_not_destroy) | ||
535 | { | ||
536 | LOG (GNUNET_ERROR_TYPE_ERROR, "destroy may not be called right now\n"); | ||
537 | GNUNET_assert (0); | ||
538 | } | ||
526 | if (consensus->client != NULL) | 539 | if (consensus->client != NULL) |
527 | { | 540 | { |
528 | GNUNET_CLIENT_disconnect (consensus->client); | 541 | GNUNET_CLIENT_disconnect (consensus->client); |