From d3978980d2e5b866e6f8b37ed1f69972e7bd6b9a Mon Sep 17 00:00:00 2001 From: Jonathan White Date: Sat, 9 Nov 2019 08:02:34 -0500 Subject: Perform file hash checks asynchronously (#3815) --- src/core/FileWatcher.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src/core/FileWatcher.cpp') diff --git a/src/core/FileWatcher.cpp b/src/core/FileWatcher.cpp index 82328832f..0d1def31a 100644 --- a/src/core/FileWatcher.cpp +++ b/src/core/FileWatcher.cpp @@ -18,7 +18,9 @@ #include "FileWatcher.h" +#include "core/AsyncTask.h" #include "core/Clock.h" + #include #include @@ -134,17 +136,19 @@ void FileWatcher::checkFileChecksum() QByteArray FileWatcher::calculateChecksum() { - QFile file(m_filePath); - if (file.open(QFile::ReadOnly)) { - QCryptographicHash hash(QCryptographicHash::Sha256); - if (m_fileChecksumSizeBytes > 0) { - hash.addData(file.read(m_fileChecksumSizeBytes)); - } else { - hash.addData(&file); + return AsyncTask::runAndWaitForFuture([this]() -> QByteArray { + QFile file(m_filePath); + if (file.open(QFile::ReadOnly)) { + QCryptographicHash hash(QCryptographicHash::Sha256); + if (m_fileChecksumSizeBytes > 0) { + hash.addData(file.read(m_fileChecksumSizeBytes)); + } else { + hash.addData(&file); + } + return hash.result(); } - return hash.result(); - } - return {}; + return {}; + }); } BulkFileWatcher::BulkFileWatcher(QObject* parent) -- cgit v1.2.3