[platforms/x11] Quit the OpenGL Freeze protection thread on shutdown

Summary:
Weird NVIDIA behavior fixup part 2. Now that we do no longer freeze when
NVIDIA decides to create an OpenGL error on startup
(aefb5f4dd9), we experience a new issue.
KWin is terminating (no idea why, [1]) and at the same time the OpenGL freeze
protection thread is still running. So far we did not terminate the
thread on shutdown and thus we hit an abort in Qt.

This change ensures that we properly terminate the thread on shutdown.

[1] My current theory is that games terminate KWin, common pattern of
bug reports is "steam".

BUG: 382283
FIXED-IN: 5.10.4

Test Plan:
Tortured KWin by making sure I go through the code path,
saw the abort without the patch, no more abort with the patch

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D6735
This commit is contained in:
Martin Flöser 2017-07-16 17:58:25 +02:00
parent 47f414b6d5
commit 06a558e3de

View file

@ -63,7 +63,14 @@ X11StandalonePlatform::X11StandalonePlatform(QObject *parent)
#endif
}
X11StandalonePlatform::~X11StandalonePlatform() = default;
X11StandalonePlatform::~X11StandalonePlatform()
{
if (m_openGLFreezeProtectionThread) {
m_openGLFreezeProtectionThread->quit();
m_openGLFreezeProtectionThread->wait();
delete m_openGLFreezeProtectionThread;
}
}
void X11StandalonePlatform::init()
{