diff -Nru kubuntu-notification-helper-14.04ubuntu10/debian/changelog kubuntu-notification-helper-14.04ubuntu11/debian/changelog --- kubuntu-notification-helper-14.04ubuntu10/debian/changelog 2014-04-02 09:55:51.000000000 +0000 +++ kubuntu-notification-helper-14.04ubuntu11/debian/changelog 2014-04-07 12:56:10.000000000 +0000 @@ -1,3 +1,10 @@ +kubuntu-notification-helper (14.04ubuntu11) trusty; urgency=medium + + * Set dbusinterface timeout to highest possible value to prevent timeouts + when the dbus helper is tediously slow (LP: #1303209) + + -- Harald Sitter Mon, 07 Apr 2014 14:55:41 +0200 + kubuntu-notification-helper (14.04ubuntu10) trusty; urgency=medium * Work around a bug in ubuntu-drivers-common not reporting the vbox diff -Nru kubuntu-notification-helper-14.04ubuntu10/src/daemon/driverevent/driverevent.cpp kubuntu-notification-helper-14.04ubuntu11/src/daemon/driverevent/driverevent.cpp --- kubuntu-notification-helper-14.04ubuntu10/src/daemon/driverevent/driverevent.cpp 2014-04-02 09:45:28.000000000 +0000 +++ kubuntu-notification-helper-14.04ubuntu11/src/daemon/driverevent/driverevent.cpp 2014-04-07 12:55:20.000000000 +0000 @@ -68,6 +68,17 @@ m_manager = new OrgKubuntuDriverManagerInterface("org.kubuntu.DriverManager", "/DriverManager", QDBusConnection::sessionBus()); + // Force no dbus timeout. + // There is exactly one method we use and it must always return. The only + // situations where it does not return are those when something is terribly + // wrong, however we cannot necessarily detect that with an async connection + // either, so instead of asyncyfing the connection, we simply force no timeout. + // TODO: this may be practical and equivalent to async connection + // but is really shitty and should be replaced by async connections. + // alas, those have their own unique problems with timer handling in + // python... + m_manager->setTimeout(INT_MAX); + QDBusPendingReply reply = m_manager->devices(); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this); connect(watcher, SIGNAL(finished(QDBusPendingCallWatcher*)),