From fe7759b2428c183fe9595640abece0937ec88bcc Mon Sep 17 00:00:00 2001 From: lurchi Date: Thu, 24 Aug 2017 22:17:46 +0200 Subject: [PATCH] fix behaviour of GNUNET_SCHEDULER_add_select on empty fdsets if GNUNET_SCHEDULER_add_select is called with empty fdsets, the resulting task is now added to the pending_timeout queue instead of the pending queue. This way the driver will not know about the task. --- src/util/scheduler.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/util/scheduler.c b/src/util/scheduler.c index 51833a78b..cbb48c3a4 100644 --- a/src/util/scheduler.c +++ b/src/util/scheduler.c @@ -1717,8 +1717,7 @@ GNUNET_SCHEDULER_add_select (enum GNUNET_SCHEDULER_Priority prio, unsigned int read_nhandles_len, write_nhandles_len, read_fhandles_len, write_fhandles_len; - if ( (NULL == rs) && - (NULL == ws) ) + if (((NULL == rs) && (NULL == ws)) || ((0 == rs->nsds) && (0 == ws->nsds))) return GNUNET_SCHEDULER_add_delayed_with_priority (delay, prio, task, @@ -1759,7 +1758,6 @@ GNUNET_SCHEDULER_add_select (enum GNUNET_SCHEDULER_Priority prio, &write_fhandles, &write_fhandles_len); } - GNUNET_assert (read_nhandles_len + write_nhandles_len > 0); init_fd_info (t, read_nhandles, read_nhandles_len, -- 2.25.1