D9264: ErrorOverlay: don't show by mistake if called with Running twice.

David Faure noreply at phabricator.kde.org
Fri Dec 8 23:04:02 GMT 2017


dfaure created this revision.
dfaure added reviewers: dvratil, vkrause.
Restricted Application added a project: KDE PIM.

REVISION SUMMARY
  If serverStateChanged(Running) is called twice, the first time
  this would hide the overlay and set mOverlayActive=false,
  so the second time this goes into the else branch, which
  shows the overlay...
  
  The reason it's called twice isn't because ServerManager
  emits stateChanged(Running) twice, obviously (it only emits on actual
  change). The reason is that the ErrorOverlay constructor calls
  serverStateChanged(state) and connects to &ServerManager::stateChanged.
  It can happen that for this initial state, ServerManager::state() finds
  out "Running" before ServerManager gets a chance to notice by itself
  and emit stateChanged().
  
  BUG: 379997

TEST PLAN
  Found with debug output, during session startup,
  over many weeks (it's clearly a race condition).

REPOSITORY
  R165 Akonadi

BRANCH
  erroroverlay

REVISION DETAIL
  https://phabricator.kde.org/D9264

AFFECTED FILES
  src/widgets/erroroverlay.cpp

To: dfaure, dvratil, vkrause
Cc: #kde_pim, dvasin, winterz, vkrause, mlaurent, knauss, dvratil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20171208/e2bb8af2/attachment.html>


More information about the kde-pim mailing list