diff options
author | Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> | 2013-03-02 17:31:53 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-03-06 17:16:13 +0100 |
commit | f1324eaa6868f196cccfec839e126ea0046cb6b6 (patch) | |
tree | 88637262ce4fc8a9b2334914431bc3602e1a8493 /src | |
parent | 95f1b47d27066c139ca685f65a2e4e91e1c3d6a9 (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')
-rw-r--r-- | src/core/manager.c | 2 |
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); |