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