D8285: Unload poller's connection thread earlier in teardown

David Edmundson noreply at phabricator.kde.org
Sat Oct 14 05:21:37 UTC 2017


davidedmundson created this revision.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.

REVISION SUMMARY
  KIdleTime is a global static, it's destructor it deletes the backend in
  a deleteLater; This is *after* the app has been deleted.
  
  This means we end up deleting Poller's ConnectionThread after the static
  QVector managing the ConnectionThreads in the main app has been deleted,
  leading to a confusing crash.
  
  We can fix this by deleting the connection thread in unload rather than
  the actual object destruction.
  
  This fixes a crash on app close, most notably the recursive drkonqi
  crash.

TEST PLAN
  Verified what was happening by subclassing the vector and adding debug
  Had the drkonqi crash loop, made this change, no more crashes

REPOSITORY
  R130 Frameworks integration plugin using KWayland

BRANCH
  master

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

AFFECTED FILES
  src/idletime/poller.cpp
  src/idletime/poller.h

To: davidedmundson
Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20171014/0b1fda00/attachment-0001.html>


More information about the Plasma-devel mailing list