diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-04-09 23:14:03 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-04-09 23:14:03 +0000 |
commit | 29e6158507a0758192075ac6ece7ba8e75ddc49a (patch) | |
tree | b91ded48da322f8ba4c9bb0f5504228aa036c2d1 /src/arm | |
parent | 5dfcb058ab5db9ae0c4b147d8a99c64ca0980028 (diff) | |
download | gnunet-29e6158507a0758192075ac6ece7ba8e75ddc49a.tar.gz gnunet-29e6158507a0758192075ac6ece7ba8e75ddc49a.zip |
small API change: do no longer pass rarely needed GNUNET_SCHEDULER_TaskContext to all scheduler tasks; instead, allow the relatively few tasks that need it to obtain the context via GNUNET_SCHEDULER_get_task_context()
Diffstat (limited to 'src/arm')
-rw-r--r-- | src/arm/arm_api.c | 6 | ||||
-rw-r--r-- | src/arm/arm_monitor_api.c | 17 | ||||
-rw-r--r-- | src/arm/gnunet-arm.c | 12 | ||||
-rw-r--r-- | src/arm/gnunet-service-arm.c | 26 | ||||
-rw-r--r-- | src/arm/test_arm_api.c | 2 | ||||
-rw-r--r-- | src/arm/test_exponential_backoff.c | 10 | ||||
-rw-r--r-- | src/arm/test_gnunet_service_arm.c | 3 |
7 files changed, 36 insertions, 40 deletions
diff --git a/src/arm/arm_api.c b/src/arm/arm_api.c index 69569511f..c708f9150 100644 --- a/src/arm/arm_api.c +++ b/src/arm/arm_api.c | |||
@@ -205,10 +205,9 @@ trigger_next_request (struct GNUNET_ARM_Handle *h, int ignore_currently_down); | |||
205 | * Task scheduled to try to re-connect to arm. | 205 | * Task scheduled to try to re-connect to arm. |
206 | * | 206 | * |
207 | * @param cls the 'struct GNUNET_ARM_Handle' | 207 | * @param cls the 'struct GNUNET_ARM_Handle' |
208 | * @param tc task context | ||
209 | */ | 208 | */ |
210 | static void | 209 | static void |
211 | reconnect_arm_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 210 | reconnect_arm_task (void *cls) |
212 | { | 211 | { |
213 | struct GNUNET_ARM_Handle *h = cls; | 212 | struct GNUNET_ARM_Handle *h = cls; |
214 | 213 | ||
@@ -711,10 +710,9 @@ GNUNET_ARM_disconnect_and_free (struct GNUNET_ARM_Handle *h) | |||
711 | * Message timed out. Remove it from the queue. | 710 | * Message timed out. Remove it from the queue. |
712 | * | 711 | * |
713 | * @param cls the message (struct ARMControlMessage *) | 712 | * @param cls the message (struct ARMControlMessage *) |
714 | * @param tc task context | ||
715 | */ | 713 | */ |
716 | static void | 714 | static void |
717 | control_message_timeout (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 715 | control_message_timeout (void *cls) |
718 | { | 716 | { |
719 | struct ARMControlMessage *cm = cls; | 717 | struct ARMControlMessage *cm = cls; |
720 | struct GNUNET_ARM_Message *arm_msg; | 718 | struct GNUNET_ARM_Message *arm_msg; |
diff --git a/src/arm/arm_monitor_api.c b/src/arm/arm_monitor_api.c index ea4caa866..19a2f4eb9 100644 --- a/src/arm/arm_monitor_api.c +++ b/src/arm/arm_monitor_api.c | |||
@@ -85,25 +85,29 @@ struct GNUNET_ARM_MonitorHandle | |||
85 | struct GNUNET_SCHEDULER_Task * init_timeout_task_id; | 85 | struct GNUNET_SCHEDULER_Task * init_timeout_task_id; |
86 | }; | 86 | }; |
87 | 87 | ||
88 | |||
88 | static void | 89 | static void |
89 | monitor_notify_handler (void *cls, const struct GNUNET_MessageHeader *msg); | 90 | monitor_notify_handler (void *cls, |
91 | const struct GNUNET_MessageHeader *msg); | ||
92 | |||
90 | 93 | ||
91 | static int | 94 | static int |
92 | reconnect_arm_monitor (struct GNUNET_ARM_MonitorHandle *h); | 95 | reconnect_arm_monitor (struct GNUNET_ARM_MonitorHandle *h); |
93 | 96 | ||
97 | |||
94 | /** | 98 | /** |
95 | * Task scheduled to try to re-connect to arm. | 99 | * Task scheduled to try to re-connect to arm. |
96 | * | 100 | * |
97 | * @param cls the 'struct GNUNET_ARM_MonitorHandle' | 101 | * @param cls the 'struct GNUNET_ARM_MonitorHandle' |
98 | * @param tc task context | ||
99 | */ | 102 | */ |
100 | static void | 103 | static void |
101 | reconnect_arm_monitor_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 104 | reconnect_arm_monitor_task (void *cls) |
102 | { | 105 | { |
103 | struct GNUNET_ARM_MonitorHandle *h = cls; | 106 | struct GNUNET_ARM_MonitorHandle *h = cls; |
104 | 107 | ||
105 | h->reconnect_task = NULL; | 108 | h->reconnect_task = NULL; |
106 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Connecting to ARM service for monitoring after delay\n"); | 109 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
110 | "Connecting to ARM service for monitoring after delay\n"); | ||
107 | reconnect_arm_monitor (h); | 111 | reconnect_arm_monitor (h); |
108 | } | 112 | } |
109 | 113 | ||
@@ -147,15 +151,14 @@ reconnect_arm_monitor_later (struct GNUNET_ARM_MonitorHandle *h) | |||
147 | * Init message timed out. Disconnect and try again. | 151 | * Init message timed out. Disconnect and try again. |
148 | * | 152 | * |
149 | * @param cls arm monitor handle | 153 | * @param cls arm monitor handle |
150 | * @param tc task context | ||
151 | */ | 154 | */ |
152 | static void | 155 | static void |
153 | init_timeout_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 156 | init_timeout_task (void *cls) |
154 | { | 157 | { |
155 | struct GNUNET_ARM_MonitorHandle *h = cls; | 158 | struct GNUNET_ARM_MonitorHandle *h = cls; |
159 | |||
156 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 160 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
157 | "Init message timed out\n"); | 161 | "Init message timed out\n"); |
158 | |||
159 | h->init_timeout_task_id = NULL; | 162 | h->init_timeout_task_id = NULL; |
160 | reconnect_arm_monitor_later (h); | 163 | reconnect_arm_monitor_later (h); |
161 | } | 164 | } |
diff --git a/src/arm/gnunet-arm.c b/src/arm/gnunet-arm.c index 726365ede..af85372d8 100644 --- a/src/arm/gnunet-arm.c +++ b/src/arm/gnunet-arm.c | |||
@@ -179,10 +179,9 @@ delete_files () | |||
179 | * jobs that we've been asked to do in order. | 179 | * jobs that we've been asked to do in order. |
180 | * | 180 | * |
181 | * @param cls closure, unused | 181 | * @param cls closure, unused |
182 | * @param tc context, unused | ||
183 | */ | 182 | */ |
184 | static void | 183 | static void |
185 | shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 184 | shutdown_task (void *cls) |
186 | { | 185 | { |
187 | if (NULL != h) | 186 | if (NULL != h) |
188 | { | 187 | { |
@@ -269,10 +268,9 @@ ret_string (enum GNUNET_ARM_Result result) | |||
269 | * Main task that runs our various operations in order. | 268 | * Main task that runs our various operations in order. |
270 | * | 269 | * |
271 | * @param cls closure | 270 | * @param cls closure |
272 | * @param tc scheudler context | ||
273 | */ | 271 | */ |
274 | static void | 272 | static void |
275 | action_loop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc); | 273 | action_loop (void *cls); |
276 | 274 | ||
277 | 275 | ||
278 | /** | 276 | /** |
@@ -539,11 +537,13 @@ list_callback (void *cls, | |||
539 | * do, in order. | 537 | * do, in order. |
540 | * | 538 | * |
541 | * @param cls closure, unused | 539 | * @param cls closure, unused |
542 | * @param tc context, unused | ||
543 | */ | 540 | */ |
544 | static void | 541 | static void |
545 | action_loop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 542 | action_loop (void *cls) |
546 | { | 543 | { |
544 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
545 | |||
546 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
547 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | 547 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) |
548 | return; | 548 | return; |
549 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Running requested actions\n"); | 549 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Running requested actions\n"); |
diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c index ea89b2989..28d448f75 100644 --- a/src/arm/gnunet-service-arm.c +++ b/src/arm/gnunet-service-arm.c | |||
@@ -630,16 +630,17 @@ find_service (const char *name) | |||
630 | * create the service in order to relay the incoming connection to it | 630 | * create the service in order to relay the incoming connection to it |
631 | * | 631 | * |
632 | * @param cls callback data, `struct ServiceListeningInfo` describing a listen socket | 632 | * @param cls callback data, `struct ServiceListeningInfo` describing a listen socket |
633 | * @param tc context | ||
634 | */ | 633 | */ |
635 | static void | 634 | static void |
636 | accept_connection (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 635 | accept_connection (void *cls) |
637 | { | 636 | { |
638 | struct ServiceListeningInfo *sli = cls; | 637 | struct ServiceListeningInfo *sli = cls; |
639 | struct ServiceList *sl = sli->sl; | 638 | struct ServiceList *sl = sli->sl; |
639 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
640 | 640 | ||
641 | sli->accept_task = NULL; | 641 | sli->accept_task = NULL; |
642 | GNUNET_assert (GNUNET_NO == in_shutdown); | 642 | GNUNET_assert (GNUNET_NO == in_shutdown); |
643 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
643 | if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)) | 644 | if (0 != (GNUNET_SCHEDULER_REASON_SHUTDOWN & tc->reason)) |
644 | return; | 645 | return; |
645 | start_process (sl, NULL, 0); | 646 | start_process (sl, NULL, 0); |
@@ -845,11 +846,9 @@ handle_start (void *cls, | |||
845 | * Start a shutdown sequence. | 846 | * Start a shutdown sequence. |
846 | * | 847 | * |
847 | * @param cls closure (refers to service) | 848 | * @param cls closure (refers to service) |
848 | * @param tc task context | ||
849 | */ | 849 | */ |
850 | static void | 850 | static void |
851 | trigger_shutdown (void *cls, | 851 | trigger_shutdown (void *cls) |
852 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
853 | { | 852 | { |
854 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 853 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
855 | "Triggering shutdown\n"); | 854 | "Triggering shutdown\n"); |
@@ -1060,11 +1059,9 @@ list_count (struct ServiceList *running_head) | |||
1060 | * Task run for shutdown. | 1059 | * Task run for shutdown. |
1061 | * | 1060 | * |
1062 | * @param cls closure, NULL if we need to self-restart | 1061 | * @param cls closure, NULL if we need to self-restart |
1063 | * @param tc context | ||
1064 | */ | 1062 | */ |
1065 | static void | 1063 | static void |
1066 | shutdown_task (void *cls, | 1064 | shutdown_task (void *cls) |
1067 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
1068 | { | 1065 | { |
1069 | struct ServiceList *pos; | 1066 | struct ServiceList *pos; |
1070 | struct ServiceList *nxt; | 1067 | struct ServiceList *nxt; |
@@ -1129,17 +1126,18 @@ shutdown_task (void *cls, | |||
1129 | * Task run whenever it is time to restart a child that died. | 1126 | * Task run whenever it is time to restart a child that died. |
1130 | * | 1127 | * |
1131 | * @param cls closure, always NULL | 1128 | * @param cls closure, always NULL |
1132 | * @param tc context | ||
1133 | */ | 1129 | */ |
1134 | static void | 1130 | static void |
1135 | delayed_restart_task (void *cls, | 1131 | delayed_restart_task (void *cls) |
1136 | const struct GNUNET_SCHEDULER_TaskContext *tc) | 1132 | |
1137 | { | 1133 | { |
1134 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1138 | struct ServiceList *sl; | 1135 | struct ServiceList *sl; |
1139 | struct GNUNET_TIME_Relative lowestRestartDelay; | 1136 | struct GNUNET_TIME_Relative lowestRestartDelay; |
1140 | struct ServiceListeningInfo *sli; | 1137 | struct ServiceListeningInfo *sli; |
1141 | 1138 | ||
1142 | child_restart_task = NULL; | 1139 | child_restart_task = NULL; |
1140 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1143 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | 1141 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) |
1144 | return; | 1142 | return; |
1145 | GNUNET_assert (GNUNET_NO == in_shutdown); | 1143 | GNUNET_assert (GNUNET_NO == in_shutdown); |
@@ -1204,12 +1202,11 @@ delayed_restart_task (void *cls, | |||
1204 | * process died). | 1202 | * process died). |
1205 | * | 1203 | * |
1206 | * @param cls closure, NULL if we need to self-restart | 1204 | * @param cls closure, NULL if we need to self-restart |
1207 | * @param tc context | ||
1208 | */ | 1205 | */ |
1209 | static void | 1206 | static void |
1210 | maint_child_death (void *cls, | 1207 | maint_child_death (void *cls) |
1211 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
1212 | { | 1208 | { |
1209 | const struct GNUNET_SCHEDULER_TaskContext *tc; | ||
1213 | struct ServiceList *pos; | 1210 | struct ServiceList *pos; |
1214 | struct ServiceList *next; | 1211 | struct ServiceList *next; |
1215 | struct ServiceListeningInfo *sli; | 1212 | struct ServiceListeningInfo *sli; |
@@ -1223,6 +1220,7 @@ maint_child_death (void *cls, | |||
1223 | 1220 | ||
1224 | pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ); | 1221 | pr = GNUNET_DISK_pipe_handle (sigpipe, GNUNET_DISK_PIPE_END_READ); |
1225 | child_death_task = NULL; | 1222 | child_death_task = NULL; |
1223 | tc = GNUNET_SCHEDULER_get_task_context (); | ||
1226 | if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) | 1224 | if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) |
1227 | { | 1225 | { |
1228 | /* shutdown scheduled us, ignore! */ | 1226 | /* shutdown scheduled us, ignore! */ |
diff --git a/src/arm/test_arm_api.c b/src/arm/test_arm_api.c index 2bdc0e941..149ec46c4 100644 --- a/src/arm/test_arm_api.c +++ b/src/arm/test_arm_api.c | |||
@@ -122,7 +122,7 @@ resolver_start_cb (void *cls, | |||
122 | 122 | ||
123 | 123 | ||
124 | static void | 124 | static void |
125 | trigger_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 125 | trigger_disconnect (void *cls) |
126 | { | 126 | { |
127 | GNUNET_ARM_disconnect_and_free ((struct GNUNET_ARM_Handle *) cls); | 127 | GNUNET_ARM_disconnect_and_free ((struct GNUNET_ARM_Handle *) cls); |
128 | } | 128 | } |
diff --git a/src/arm/test_exponential_backoff.c b/src/arm/test_exponential_backoff.c index 44493c6de..1032a9010 100644 --- a/src/arm/test_exponential_backoff.c +++ b/src/arm/test_exponential_backoff.c | |||
@@ -141,11 +141,9 @@ service_shutdown_handler (void *cls, const struct GNUNET_MessageHeader *msg) | |||
141 | * Shutting down took too long, cancel receive and return error. | 141 | * Shutting down took too long, cancel receive and return error. |
142 | * | 142 | * |
143 | * @param cls closure | 143 | * @param cls closure |
144 | * @param tc context information (why was this task triggered now) | ||
145 | */ | 144 | */ |
146 | static void | 145 | static void |
147 | service_shutdown_cancel (void *cls, | 146 | service_shutdown_cancel (void *cls) |
148 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
149 | { | 147 | { |
150 | struct ShutdownContext *shutdown_ctx = cls; | 148 | struct ShutdownContext *shutdown_ctx = cls; |
151 | 149 | ||
@@ -227,7 +225,7 @@ do_nothing_service_shutdown (struct GNUNET_CLIENT_Connection *sock, | |||
227 | 225 | ||
228 | 226 | ||
229 | static void | 227 | static void |
230 | kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc); | 228 | kill_task (void *cbData); |
231 | 229 | ||
232 | 230 | ||
233 | static void | 231 | static void |
@@ -246,7 +244,7 @@ shutdown_cont (void *cls, int reason) | |||
246 | 244 | ||
247 | 245 | ||
248 | static void | 246 | static void |
249 | kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc) | 247 | kill_task (void *cbData) |
250 | { | 248 | { |
251 | static struct GNUNET_CLIENT_Connection *doNothingConnection = NULL; | 249 | static struct GNUNET_CLIENT_Connection *doNothingConnection = NULL; |
252 | 250 | ||
@@ -284,7 +282,7 @@ kill_task (void *cbData, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
284 | 282 | ||
285 | 283 | ||
286 | static void | 284 | static void |
287 | trigger_disconnect (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | 285 | trigger_disconnect (void *cls) |
288 | { | 286 | { |
289 | GNUNET_ARM_disconnect_and_free (arm); | 287 | GNUNET_ARM_disconnect_and_free (arm); |
290 | GNUNET_ARM_monitor_disconnect_and_free (mon); | 288 | GNUNET_ARM_monitor_disconnect_and_free (mon); |
diff --git a/src/arm/test_gnunet_service_arm.c b/src/arm/test_gnunet_service_arm.c index 7003271fa..33662e579 100644 --- a/src/arm/test_gnunet_service_arm.c +++ b/src/arm/test_gnunet_service_arm.c | |||
@@ -49,8 +49,7 @@ static struct GNUNET_ARM_Handle *arm; | |||
49 | 49 | ||
50 | 50 | ||
51 | static void | 51 | static void |
52 | trigger_disconnect (void *cls, | 52 | trigger_disconnect (void *cls) |
53 | const struct GNUNET_SCHEDULER_TaskContext *tc) | ||
54 | { | 53 | { |
55 | GNUNET_ARM_disconnect_and_free (arm); | 54 | GNUNET_ARM_disconnect_and_free (arm); |
56 | arm = NULL; | 55 | arm = NULL; |