803fb7
From f5ce5e24f9cf18a37ef6aedb149891d07767b045 Mon Sep 17 00:00:00 2001
803fb7
From: Hannes Reinecke <hare@suse.de>
803fb7
Date: Wed, 4 Mar 2015 16:32:16 +0100
803fb7
Subject: [PATCH] Remove the cap on epoll events
803fb7
803fb7
Currently the code will silently blank out events if there are more
803fb7
then 512 epoll events, causing them never to be handled at all. This
803fb7
patch removes the cap on the number of events for epoll_wait, thereby
803fb7
avoiding this issue.
803fb7
803fb7
(cherry picked from commit 1c724e9e0ec5bc4bf791a3d7b1cf5b955cdb98b2)
803fb7
---
803fb7
 src/libsystemd/sd-event/sd-event.c | 3 +--
803fb7
 1 file changed, 1 insertion(+), 2 deletions(-)
803fb7
803fb7
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
803fb7
index 25089a033..c6350be9f 100644
803fb7
--- a/src/libsystemd/sd-event/sd-event.c
803fb7
+++ b/src/libsystemd/sd-event/sd-event.c
803fb7
@@ -37,7 +37,6 @@
803fb7
 
803fb7
 #include "sd-event.h"
803fb7
 
803fb7
-#define EPOLL_QUEUE_MAX 512U
803fb7
 #define DEFAULT_ACCURACY_USEC (250 * USEC_PER_MSEC)
803fb7
 
803fb7
 typedef enum EventSourceType {
803fb7
@@ -2367,7 +2366,7 @@ _public_ int sd_event_wait(sd_event *e, uint64_t timeout) {
803fb7
                 return 1;
803fb7
         }
803fb7
 
803fb7
-        ev_queue_max = CLAMP(e->n_sources, 1U, EPOLL_QUEUE_MAX);
803fb7
+        ev_queue_max = MAX(e->n_sources, 1u);
803fb7
         ev_queue = newa(struct epoll_event, ev_queue_max);
803fb7
 
803fb7
         m = epoll_wait(e->epoll_fd, ev_queue, ev_queue_max,