summaryrefslogtreecommitdiff
path: root/src/login
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-05-04 19:01:56 +0200
committerLennart Poettering <lennart@poettering.net>2016-05-05 22:50:09 +0200
commite11544a8305ab9dea097c74bb16e296150c9cc10 (patch)
tree271f542db832c5af73082aaf78f8fa528ef747c4 /src/login
parent89f193fac8e1b85936e32455ed7a5ea6b43d6508 (diff)
logind: process session/inhibitor fds at higher priority
Let's make sure we process session and inhibitor pipe fds (that signal sessions/inhibtors going away) at a higher priority than new bus calls that might create new sessions or inhibitors. This helps ensuring that the number of open sessions stays minimal.
Diffstat (limited to 'src/login')
-rw-r--r--src/login/logind-inhibit.c2
-rw-r--r--src/login/logind-session.c4
-rw-r--r--src/login/logind.c2
3 files changed, 5 insertions, 3 deletions
diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c
index a0e3ba2b7c..6c78e0dddc 100644
--- a/src/login/logind-inhibit.c
+++ b/src/login/logind-inhibit.c
@@ -317,7 +317,7 @@ int inhibitor_create_fifo(Inhibitor *i) {
if (r < 0)
return r;
- r = sd_event_source_set_priority(i->event_source, SD_EVENT_PRIORITY_IDLE);
+ r = sd_event_source_set_priority(i->event_source, SD_EVENT_PRIORITY_IDLE-10);
if (r < 0)
return r;
}
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index a8b1d5943d..d2f1f7bc62 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -897,7 +897,9 @@ int session_create_fifo(Session *s) {
if (r < 0)
return r;
- r = sd_event_source_set_priority(s->fifo_event_source, SD_EVENT_PRIORITY_IDLE);
+ /* Let's make sure we noticed dead sessions before we process new bus requests (which might create new
+ * sessions). */
+ r = sd_event_source_set_priority(s->fifo_event_source, SD_EVENT_PRIORITY_NORMAL-10);
if (r < 0)
return r;
}
diff --git a/src/login/logind.c b/src/login/logind.c
index 39f53cab36..64bd1ca582 100644
--- a/src/login/logind.c
+++ b/src/login/logind.c
@@ -687,7 +687,7 @@ static int manager_connect_bus(Manager *m) {
if (r < 0)
return log_error_errno(r, "Failed to register name: %m");
- r = sd_bus_attach_event(m->bus, m->event, 0);
+ r = sd_bus_attach_event(m->bus, m->event, SD_EVENT_PRIORITY_NORMAL);
if (r < 0)
return log_error_errno(r, "Failed to attach bus to event loop: %m");