summaryrefslogtreecommitdiffstats
path: root/src/core/web_engine_context.cpp
diff options
context:
space:
mode:
authorMichal Klocek <michal.klocek@qt.io>2020-03-12 16:26:07 +0100
committerMichal Klocek <michal.klocek@qt.io>2020-03-27 15:00:24 +0100
commit4dfe65f6d4d27bde9d4dae51d262493bea70e619 (patch)
tree264d2e3ba863f54b9000b6e82ad096fd93622a02 /src/core/web_engine_context.cpp
parent9d979c1e89922500604527d1d8606a7c668ad11f (diff)
Fix rare crash on exit in isCreateContextRobustnessSupported
During shutdown we might need to flush the gpu buffer if root frame sink is being deleted, which needs current context, which calls isCreateContextRobustnessSupported and ends up in calling platformName() from gpu thread, which might be already destructed on ui thread. Keep context helper till gpu thread is gone. Task-number: QTBUG-79864 Change-Id: Idadc064694fe0584fb894a9405a0af80d9848626 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/web_engine_context.cpp')
-rw-r--r--src/core/web_engine_context.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/web_engine_context.cpp b/src/core/web_engine_context.cpp
index 5937d3b21..1fa12885f 100644
--- a/src/core/web_engine_context.cpp
+++ b/src/core/web_engine_context.cpp
@@ -344,12 +344,13 @@ void WebEngineContext::destroy()
// This should deliver all nessesery calls of DeleteSoon from PostTask
while (delegate->DoWork()) { }
- GLContextHelper::destroy();
m_devtoolsServer.reset();
m_runLoop->AfterRun();
// Destroy the main runner, this stops main message loop
m_browserRunner.reset();
+ // gpu thread is no longer around, so no more cotnext is used, remove the helper
+ GLContextHelper::destroy();
// These would normally be in the content-runner, but we allocated them separately:
m_startupData.reset();