From 980f94e493c349c6c86f1b3d05753ce3cfba38d8 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 23 Nov 2019 15:53:37 +0100 Subject: Fix race in updateCopying If the storage is fast enough, passing a bool to updateCopying does not suffice. Then the SIGNAL with inProgress == true could arrive *after* the work is already done, leaving the copy indicator in an inconsitent state. So check the QThread directly by ->isRunning() instead of passing a bool. --- filecopier.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'filecopier.cpp') diff --git a/filecopier.cpp b/filecopier.cpp index dd3f679..a77e051 100644 --- a/filecopier.cpp +++ b/filecopier.cpp @@ -25,7 +25,7 @@ void FileCopier::run(){ mAddJobMutex.unlock(); QString msg = QString(tr("Copy: %1 (%2/%3)")).arg(source).arg(QString::number(mCopied + 1)).arg(QString::number(mTotal)); QString cmsg = QString("%1/%2").arg(QString::number(mCopied + 1)).arg(QString::number(mTotal)); - emit copying(true, cmsg); + emit copying(cmsg); emit message(msg); QFile sFile(source); if(sFile.copy(dest)){ -- cgit v1.2.3-70-g09d2