From f0140aa59e7e6570deec0cde35fc0147ee1292cb Mon Sep 17 00:00:00 2001 From: lurchi Date: Tue, 23 Jan 2018 09:09:27 +0100 Subject: [PATCH] catch early return of select before call to GNUNET_SCHEDULER_run_from_driver --- src/util/scheduler.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/util/scheduler.c b/src/util/scheduler.c index 6a1b1a22d..a8d572a56 100644 --- a/src/util/scheduler.c +++ b/src/util/scheduler.c @@ -25,6 +25,8 @@ #include "platform.h" #include "gnunet_util_lib.h" #include "disk.h" +// DEBUG +#include #define LOG(kind,...) GNUNET_log_from (kind, "util-scheduler", __VA_ARGS__) @@ -2333,6 +2335,19 @@ select_loop (void *cls, } } } + else + { + struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get (); + if (now.abs_value_us < context->timeout.abs_value_us) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "select was expected to return at %" PRIu64 ", " + "but returned already at %" PRIu64 "\n", + context->timeout.abs_value_us, + now.abs_value_us); + GNUNET_assert (0); + } + } tasks_ready = GNUNET_SCHEDULER_run_from_driver (sh); GNUNET_assert (GNUNET_SYSERR != tasks_ready); } -- 2.25.1