diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-04-30 08:17:37 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-04-30 08:17:37 +0000 |
commit | 95f9076a2139f5fb042b944a0658b6cda2fa35db (patch) | |
tree | b0826a2a1dcf812e6b4450fe6b05d47cd53ae49d /src/core | |
parent | 7746f68db77b9ca3c4aaca24ab2ce5253461240b (diff) | |
download | gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.tar.gz gnunet-95f9076a2139f5fb042b944a0658b6cda2fa35db.zip |
implementing new scheduler shutdown semantics
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/gnunet-core.c | 3 | ||||
-rw-r--r-- | src/core/gnunet-service-core.c | 5 | ||||
-rw-r--r-- | src/core/gnunet-service-core_kx.c | 7 | ||||
-rw-r--r-- | src/core/test_core_api_mq.c | 30 | ||||
-rw-r--r-- | src/core/test_core_quota_compliance.c | 13 |
5 files changed, 29 insertions, 29 deletions
diff --git a/src/core/gnunet-core.c b/src/core/gnunet-core.c index 968072e22..d91dc304d 100644 --- a/src/core/gnunet-core.c +++ b/src/core/gnunet-core.c | |||
@@ -155,8 +155,7 @@ run (void *cls, char *const *args, const char *cfgfile, | |||
155 | _("Failed to connect to CORE service!\n")); | 155 | _("Failed to connect to CORE service!\n")); |
156 | return; | 156 | return; |
157 | } | 157 | } |
158 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, | 158 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); |
159 | &shutdown_task, NULL); | ||
160 | } | 159 | } |
161 | 160 | ||
162 | 161 | ||
diff --git a/src/core/gnunet-service-core.c b/src/core/gnunet-service-core.c index 1d9de8666..70b83b24c 100644 --- a/src/core/gnunet-service-core.c +++ b/src/core/gnunet-service-core.c | |||
@@ -106,9 +106,8 @@ run (void *cls, struct GNUNET_SERVER_Handle *server, | |||
106 | return; | 106 | return; |
107 | } | 107 | } |
108 | GSC_stats = GNUNET_STATISTICS_create ("core", GSC_cfg); | 108 | GSC_stats = GNUNET_STATISTICS_create ("core", GSC_cfg); |
109 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, | 109 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, |
110 | &shutdown_task, | 110 | NULL); |
111 | NULL); | ||
112 | GNUNET_SERVER_suspend (server); | 111 | GNUNET_SERVER_suspend (server); |
113 | GSC_TYPEMAP_init (); | 112 | GSC_TYPEMAP_init (); |
114 | pk = GNUNET_CRYPTO_eddsa_key_create_from_file (keyfile); | 113 | pk = GNUNET_CRYPTO_eddsa_key_create_from_file (keyfile); |
diff --git a/src/core/gnunet-service-core_kx.c b/src/core/gnunet-service-core_kx.c index 8250bcc6f..9bb5af100 100644 --- a/src/core/gnunet-service-core_kx.c +++ b/src/core/gnunet-service-core_kx.c | |||
@@ -745,9 +745,10 @@ GSC_KX_start (const struct GNUNET_PeerIdentity *pid) | |||
745 | { | 745 | { |
746 | /* peer with "higher" identity starts a delayed KX, if the "lower" peer | 746 | /* peer with "higher" identity starts a delayed KX, if the "lower" peer |
747 | * does not start a KX since he sees no reasons to do so */ | 747 | * does not start a KX since he sees no reasons to do so */ |
748 | kx->retry_set_key_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, | 748 | kx->retry_set_key_task |
749 | &set_key_retry_task, | 749 | = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, |
750 | kx); | 750 | &set_key_retry_task, |
751 | kx); | ||
751 | } | 752 | } |
752 | return kx; | 753 | return kx; |
753 | } | 754 | } |
diff --git a/src/core/test_core_api_mq.c b/src/core/test_core_api_mq.c index a82465e74..8ece78e58 100644 --- a/src/core/test_core_api_mq.c +++ b/src/core/test_core_api_mq.c | |||
@@ -29,15 +29,15 @@ | |||
29 | /** | 29 | /** |
30 | * Has the test been successful? | 30 | * Has the test been successful? |
31 | */ | 31 | */ |
32 | int result; | 32 | static int result; |
33 | 33 | ||
34 | unsigned int num_received; | 34 | static unsigned int num_received; |
35 | 35 | ||
36 | struct GNUNET_CORE_Handle *core; | 36 | static struct GNUNET_CORE_Handle *core; |
37 | 37 | ||
38 | struct GNUNET_MQ_Handle *mq; | 38 | static struct GNUNET_MQ_Handle *mq; |
39 | 39 | ||
40 | struct GNUNET_PeerIdentity myself; | 40 | static struct GNUNET_PeerIdentity myself; |
41 | 41 | ||
42 | 42 | ||
43 | static void | 43 | static void |
@@ -55,15 +55,19 @@ init_cb (void *cls, | |||
55 | 55 | ||
56 | 56 | ||
57 | static void | 57 | static void |
58 | connect_cb (void *cls, const struct GNUNET_PeerIdentity *peer) | 58 | connect_cb (void *cls, |
59 | const struct GNUNET_PeerIdentity *peer) | ||
59 | { | 60 | { |
60 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Connected to peer %s.\n", | 61 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
62 | "Connected to peer %s.\n", | ||
61 | GNUNET_i2s (peer)); | 63 | GNUNET_i2s (peer)); |
62 | if (0 == memcmp (peer, &myself, sizeof (struct GNUNET_PeerIdentity))) | 64 | if (0 == memcmp (peer, &myself, sizeof (struct GNUNET_PeerIdentity))) |
63 | { | 65 | { |
64 | unsigned int i; | 66 | unsigned int i; |
65 | struct GNUNET_MQ_Envelope *ev; | 67 | struct GNUNET_MQ_Envelope *ev; |
66 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Queueing messages.\n"); | 68 | |
69 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
70 | "Queueing messages.\n"); | ||
67 | for (i = 0; i < NUM_MSG; i++) | 71 | for (i = 0; i < NUM_MSG; i++) |
68 | { | 72 | { |
69 | ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_TEST); | 73 | ev = GNUNET_MQ_msg_header (GNUNET_MESSAGE_TYPE_TEST); |
@@ -78,7 +82,9 @@ handle_test (void *cls, | |||
78 | const struct GNUNET_PeerIdentity *other, | 82 | const struct GNUNET_PeerIdentity *other, |
79 | const struct GNUNET_MessageHeader *message) | 83 | const struct GNUNET_MessageHeader *message) |
80 | { | 84 | { |
81 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got test message %d\n", num_received); | 85 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
86 | "Got test message %d\n", | ||
87 | num_received); | ||
82 | num_received++; | 88 | num_received++; |
83 | if (NUM_MSG == num_received) | 89 | if (NUM_MSG == num_received) |
84 | { | 90 | { |
@@ -98,7 +104,8 @@ handle_test (void *cls, | |||
98 | static void | 104 | static void |
99 | shutdown_task (void *cls) | 105 | shutdown_task (void *cls) |
100 | { | 106 | { |
101 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down\n"); | 107 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
108 | "Shutting down\n"); | ||
102 | GNUNET_MQ_destroy (mq); | 109 | GNUNET_MQ_destroy (mq); |
103 | GNUNET_CORE_disconnect (core); | 110 | GNUNET_CORE_disconnect (core); |
104 | } | 111 | } |
@@ -129,9 +136,10 @@ run (void *cls, | |||
129 | GNUNET_assert (0); | 136 | GNUNET_assert (0); |
130 | return; | 137 | return; |
131 | } | 138 | } |
132 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, &shutdown_task, NULL); | 139 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL); |
133 | } | 140 | } |
134 | 141 | ||
142 | |||
135 | int | 143 | int |
136 | main (int argc, char *argv1[]) | 144 | main (int argc, char *argv1[]) |
137 | { | 145 | { |
diff --git a/src/core/test_core_quota_compliance.c b/src/core/test_core_quota_compliance.c index ed895df42..e28f57fa6 100644 --- a/src/core/test_core_quota_compliance.c +++ b/src/core/test_core_quota_compliance.c | |||
@@ -163,13 +163,9 @@ terminate_task (void *cls) | |||
163 | static void | 163 | static void |
164 | terminate_task_error (void *cls) | 164 | terminate_task_error (void *cls) |
165 | { | 165 | { |
166 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
167 | |||
168 | err_task = NULL; | 166 | err_task = NULL; |
169 | tc = GNUNET_SCHEDULER_get_task_context (); | 167 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
170 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | 168 | "Testcase failed!\n"); |
171 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | ||
172 | "Testcase failed!\n"); | ||
173 | terminate_peer (&p1); | 169 | terminate_peer (&p1); |
174 | terminate_peer (&p2); | 170 | terminate_peer (&p2); |
175 | //GNUNET_break (0); | 171 | //GNUNET_break (0); |
@@ -301,7 +297,6 @@ measurement_stop (void *cls) | |||
301 | */ | 297 | */ |
302 | GNUNET_SCHEDULER_cancel (err_task); | 298 | GNUNET_SCHEDULER_cancel (err_task); |
303 | err_task = GNUNET_SCHEDULER_add_now (&terminate_task, NULL); | 299 | err_task = GNUNET_SCHEDULER_add_now (&terminate_task, NULL); |
304 | |||
305 | } | 300 | } |
306 | 301 | ||
307 | 302 | ||
@@ -357,7 +352,6 @@ transmit_ready (void *cls, size_t size, void *buf) | |||
357 | } | 352 | } |
358 | 353 | ||
359 | 354 | ||
360 | |||
361 | static void | 355 | static void |
362 | connect_notify (void *cls, const struct GNUNET_PeerIdentity *peer) | 356 | connect_notify (void *cls, const struct GNUNET_PeerIdentity *peer) |
363 | { | 357 | { |
@@ -375,8 +369,7 @@ connect_notify (void *cls, const struct GNUNET_PeerIdentity *peer) | |||
375 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 369 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
376 | "Asking core (1) for transmission to peer `%4s'\n", | 370 | "Asking core (1) for transmission to peer `%4s'\n", |
377 | GNUNET_i2s (&p2.id)); | 371 | GNUNET_i2s (&p2.id)); |
378 | if (err_task != NULL) | 372 | GNUNET_SCHEDULER_cancel (err_task); |
379 | GNUNET_SCHEDULER_cancel (err_task); | ||
380 | err_task = | 373 | err_task = |
381 | GNUNET_SCHEDULER_add_delayed (TIMEOUT, &terminate_task_error, NULL); | 374 | GNUNET_SCHEDULER_add_delayed (TIMEOUT, &terminate_task_error, NULL); |
382 | start_time = GNUNET_TIME_absolute_get (); | 375 | start_time = GNUNET_TIME_absolute_get (); |