From: Lennart Poettering Date: Tue, 3 Jan 2012 20:50:02 +0000 (+0100) Subject: logind: don't watch vcsa if nobody cares X-Git-Tag: v38~93 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=976c088a0242a1a91b8f00899a4c2ae0e621a185 logind: don't watch vcsa if nobody cares --- diff --git a/src/login/logind.c b/src/login/logind.c index 3a1903ca1..333d5f85b 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -955,7 +955,8 @@ static int manager_connect_udev(Manager *m) { ev.events = EPOLLIN; ev.data.u32 = FD_SEAT_UDEV; - if (m->n_autovts <= 0) + /* Don't bother watching VCSA devices, if nobody cares */ + if (m->n_autovts <= 0 || m->console_active_fd < 0) return 0; if (epoll_ctl(m->epoll_fd, EPOLL_CTL_ADD, m->udev_seat_fd, &ev) < 0) @@ -1074,13 +1075,13 @@ int manager_startup(Manager *m) { if (m->epoll_fd < 0) return -errno; - /* Connect to udev */ - r = manager_connect_udev(m); + /* Connect to console */ + r = manager_connect_console(m); if (r < 0) return r; - /* Connect to console */ - r = manager_connect_console(m); + /* Connect to udev */ + r = manager_connect_udev(m); if (r < 0) return r;