From: Jean-Baptiste Mardelle Date: Wed, 12 Oct 2011 21:47:47 +0000 (+0000) Subject: Another attempt to secure thumbs creation X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=6840fa1da457b9553eea49caeb14814ce5c908f8;p=kdenlive Another attempt to secure thumbs creation svn path=/trunk/kdenlive/; revision=5955 --- diff --git a/src/kthumb.cpp b/src/kthumb.cpp index d8a91e80..7bc4d6f8 100644 --- a/src/kthumb.cpp +++ b/src/kthumb.cpp @@ -121,7 +121,11 @@ void KThumb::extractImage(int frame, int frame2) if (!KdenliveSettings::videothumbnails() || m_producer == NULL) return; if (frame != -1 && !m_requestedThumbs.contains(frame)) m_requestedThumbs.append(frame); if (frame2 != -1 && !m_requestedThumbs.contains(frame2)) m_requestedThumbs.append(frame2); - if (!m_future.isRunning()) m_future = QtConcurrent::run(this, &KThumb::doGetThumbs); + if (!m_future.isRunning()) { + m_mutex.lock(); + m_future = QtConcurrent::run(this, &KThumb::doGetThumbs); + m_mutex.unlock(); + } } void KThumb::doGetThumbs() @@ -473,7 +477,11 @@ void KThumb::queryIntraThumbs(QList missingFrames) if (!m_intraFramesQueue.contains(i)) m_intraFramesQueue.append(i); } qSort(m_intraFramesQueue); - if (!m_intra.isRunning()) m_intra = QtConcurrent::run(this, &KThumb::slotGetIntraThumbs); + if (!m_intra.isRunning()) { + m_mutex.lock(); + m_intra = QtConcurrent::run(this, &KThumb::slotGetIntraThumbs); + m_mutex.unlock(); + } } void KThumb::slotGetIntraThumbs()