summaryrefslogtreecommitdiff
path: root/src/core/manager.c
diff options
context:
space:
mode:
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>2013-03-02 17:31:53 +0100
committerLennart Poettering <lennart@poettering.net>2013-03-06 17:16:13 +0100
commitf1324eaa6868f196cccfec839e126ea0046cb6b6 (patch)
tree88637262ce4fc8a9b2334914431bc3602e1a8493 /src/core/manager.c
parent95f1b47d27066c139ca685f65a2e4e91e1c3d6a9 (diff)
manager: remove timer fd explicitly from epoll
Forked processes can keep the old fd alive triggering epoll over and over again else. https://bugs.freedesktop.org/show_bug.cgi?id=61697
Diffstat (limited to 'src/core/manager.c')
-rw-r--r--src/core/manager.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/manager.c b/src/core/manager.c
index 1d188081a1..c261b25fb6 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1674,6 +1674,8 @@ static int process_event(Manager *m, struct epoll_event *ev) {
NULL);
/* Restart the watch */
+ epoll_ctl(m->epoll_fd, EPOLL_CTL_DEL, m->time_change_watch.fd,
+ NULL);
close_nointr_nofail(m->time_change_watch.fd);
watch_init(&m->time_change_watch);
manager_setup_time_change(m);