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