Skip to content
  • Jolene K's avatar
    systemtray: Fix race in DBusServiceObserver · 757b5e8c
    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
    
    
    (cherry picked from commit 3751f49c)
    757b5e8c