From e21b68be534cf284c81a8e8f6994917c8a429cef Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Mon, 10 Aug 2020 02:09:24 +1000 Subject: [PATCH] renderer: queue hash setting from another thread Fixes race condition that caused many segfaults. --- app/render/backend/renderbackend.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/render/backend/renderbackend.cpp b/app/render/backend/renderbackend.cpp index 1de50ab2c..bcca87a21 100644 --- a/app/render/backend/renderbackend.cpp +++ b/app/render/backend/renderbackend.cpp @@ -524,7 +524,11 @@ void RenderBackend::SetHashes(FrameHashCache* cache, const QVector& ti } } - cache->SetHash(time, hash, job_time, hash_exists); + QMetaObject::invokeMethod(cache, "SetHash", Qt::QueuedConnection, + OLIVE_NS_ARG(rational, time), + Q_ARG(QByteArray, hash), + Q_ARG(qint64, job_time), + Q_ARG(bool, hash_exists)); } }