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