gnunet

Main GNUnet Logic
Log | Files | Refs | Submodules | README | LICENSE

commit 822f78452d7bd2cc216ad68d0ff7b67ee11ed6db
parent 4c29dfa6d88487fdea6294de56f5cf5cceb17338
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  1 Apr 2024 16:06:17 +0200

better error reporting on scheduler issues

Diffstat:
Msrc/lib/util/gnunet_error_codes.c | 1-
Msrc/lib/util/scheduler.c | 26++++++++++++++++----------
2 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/lib/util/gnunet_error_codes.c b/src/lib/util/gnunet_error_codes.c @@ -17,7 +17,6 @@ SPDX-License-Identifier: AGPL3.0-or-later */ -#include "platform.h" #include "gnunet_error_codes.h" #include <stddef.h> #include <microhttpd.h> diff --git a/src/lib/util/scheduler.c b/src/lib/util/scheduler.c @@ -510,7 +510,9 @@ get_timeout () return timeout; } -static void remove_pass_end_marker () + +static void +remove_pass_end_marker () { if (pass_end_marker.in_ready_list) { @@ -521,7 +523,9 @@ static void remove_pass_end_marker () } } -static void set_work_priority (enum GNUNET_SCHEDULER_Priority p) + +static void +set_work_priority (enum GNUNET_SCHEDULER_Priority p) { remove_pass_end_marker (); GNUNET_CONTAINER_DLL_insert_tail (ready_head[p], @@ -532,6 +536,7 @@ static void set_work_priority (enum GNUNET_SCHEDULER_Priority p) work_priority = p; } + /** * Put a task that is ready for execution into the ready queue. * @@ -711,7 +716,7 @@ shutdown_if_no_lifeness (void) } -static int +static enum GNUNET_GenericReturnValue select_loop (struct GNUNET_SCHEDULER_Handle *sh, struct DriverContext *context); @@ -735,8 +740,9 @@ GNUNET_SCHEDULER_run (GNUNET_SCHEDULER_TaskCallback task, task_cls, GNUNET_SCHEDULER_REASON_STARTUP, GNUNET_SCHEDULER_PRIORITY_DEFAULT); - select_loop (sh, - &context); + GNUNET_break (GNUNET_OK == + select_loop (sh, + &context)); GNUNET_SCHEDULER_driver_done (sh); GNUNET_free (driver); } @@ -2276,12 +2282,12 @@ GNUNET_SCHEDULER_driver_init (const struct GNUNET_SCHEDULER_Driver *driver) void GNUNET_SCHEDULER_driver_done (struct GNUNET_SCHEDULER_Handle *sh) { - GNUNET_assert (NULL == pending_head); - GNUNET_assert (NULL == pending_timeout_head); - GNUNET_assert (NULL == shutdown_head); + GNUNET_break (NULL == pending_head); + GNUNET_break (NULL == pending_timeout_head); + GNUNET_break (NULL == shutdown_head); for (int i = 0; i != GNUNET_SCHEDULER_PRIORITY_COUNT; ++i) { - GNUNET_assert (NULL == ready_head[i]); + GNUNET_break (NULL == ready_head[i]); } GNUNET_NETWORK_fdset_destroy (sh->rs); GNUNET_NETWORK_fdset_destroy (sh->ws); @@ -2302,7 +2308,7 @@ GNUNET_SCHEDULER_driver_done (struct GNUNET_SCHEDULER_Handle *sh) } -static int +static enum GNUNET_GenericReturnValue select_loop (struct GNUNET_SCHEDULER_Handle *sh, struct DriverContext *context) {