From 2c73651327b6ec40ed6600eec6fdc6d7d0029046 Mon Sep 17 00:00:00 2001 From: Victor Brekenfeld Date: Sun, 25 Nov 2018 00:33:58 +0100 Subject: [PATCH] logind: fix dbus spamming the event queue --- src/backend/session/dbus/logind.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/session/dbus/logind.rs b/src/backend/session/dbus/logind.rs index e144422..9930985 100644 --- a/src/backend/session/dbus/logind.rs +++ b/src/backend/session/dbus/logind.rs @@ -30,7 +30,7 @@ //! automatically by the `UdevBackend`, if not done manually). //! ``` -use backend::session::{AsErrno, AsSessionObserver, Session, SessionNotifier, SessionObserver}; +use backend::session::{AsErrno, Session, SessionNotifier, SessionObserver}; use dbus::{ BusName, BusType, Connection, ConnectionItem, ConnectionItems, Interface, Member, Message, MessageItem, OwnedFd, Path as DbusPath, Watch, WatchEvent, @@ -441,7 +441,10 @@ pub fn logind_session_bind( .into_iter() .map(|watch| { let mut source = Generic::from_raw_fd(watch.fd()); - source.set_interest(Ready::readable() | Ready::writable()); + source.set_interest( + if watch.readable() { Ready::readable() } else { Ready::empty() } + | if watch.writable() { Ready::writable() } else { Ready::empty() } + ); handle.insert_source(source, { let mut notifier = notifier.clone(); move |evt, _| notifier.event(evt)