Skip to content
  • Jolene K's avatar
    systemtray: Fix race in DBusServiceObserver · ff834fc9
    Jolene K authored and Nate Graham's avatar Nate Graham committed
    When a service appears right after the ListNames() call finished, but
    before the QDBusPendingCallWatcher is set up, the ::serviceRegistered
    signal will be queued before the ListNames() response. As a result,
    the service will be ignored by DBusServiceObserver.
    
    Switching to QDBusInterface::callWithCallback() ensures that the
    result slot is queued as soon as the response arrives, thus avoiding
    the race.
    
    Credits go to Sam Edwards for identifying the problem in
    https://bugs.kde.org/show_bug.cgi?id=422111#c69
    
    BUG: 422111
    FIXED-IN: 5.24.5
    ff834fc9