From 15ac2f7ffd502cdc6f4ba47d0dd70fc39c48d8d7 Mon Sep 17 00:00:00 2001 From: Li Zhou Date: Wed, 31 Mar 2021 16:08:18 +0800 Subject: [PATCH 21/21] systemd: Fix compiling errors when merging #1819868 A series of patches are merged in for the issue: https://bugzilla.redhat.com/show_bug.cgi?id=1819868 This commit is for fixing the compiling errors caused by context conflict. Signed-off-by: Li Zhou --- src/libsystemd/sd-event/sd-event.c | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c index 9dc1a27..282b38f 100644 --- a/src/libsystemd/sd-event/sd-event.c +++ b/src/libsystemd/sd-event/sd-event.c @@ -37,9 +37,32 @@ #include "list.h" #include "sd-event.h" +#include "event-util.h" #define DEFAULT_ACCURACY_USEC (250 * USEC_PER_MSEC) +#define CMP(a, b) __CMP(UNIQ, (a), UNIQ, (b)) +#define __CMP(aq, a, bq, b) \ + ({ \ + const typeof(a) UNIQ_T(A, aq) = (a); \ + const typeof(b) UNIQ_T(B, bq) = (b); \ + UNIQ_T(A, aq) < UNIQ_T(B, bq) ? -1 : \ + UNIQ_T(A, aq) > UNIQ_T(B, bq) ? 1 : 0; \ + }) + +static inline usec_t usec_add(usec_t a, usec_t b) { + usec_t c; + + /* Adds two time values, and makes sure USEC_INFINITY as input results as USEC_INFINITY in output, and doesn't + * overflow. */ + + c = a + b; + if (c < a || c < b) /* overflow check */ + return USEC_INFINITY; + + return c; +} + typedef enum EventSourceType { SOURCE_IO, SOURCE_TIME_REALTIME, @@ -2456,7 +2479,7 @@ static int source_dispatch(sd_event_source *s) { /* Check if we hit the ratelimit for this event source, if so, let's disable it. */ assert(!s->ratelimited); - if (!ratelimit_below(&s->rate_limit)) { + if (!ratelimit_test(&s->rate_limit)) { r = event_source_enter_ratelimited(s); if (r < 0) return r; -- 2.17.1