From afe939ef23971d2f2e10a2d82a00ad27bd7ca0e1 Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Fri, 5 Mar 2010 12:55:04 +0100 Subject: [PATCH] A bit more efficient adding/removing of file watchers. Each call of addPath(s) removePath(s) potentially is locking and unlocking a mutex, so do it for all paths at once. --- src/plugins/coreplugin/filemanager.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp index ee4ab681276..231828ab3bb 100644 --- a/src/plugins/coreplugin/filemanager.cpp +++ b/src/plugins/coreplugin/filemanager.cpp @@ -720,7 +720,9 @@ void FileManager::checkForReload() IFile::ReloadBehavior behavior = EditorManager::instance()->reloadBehavior(); + QStringList allFileNames; foreach(const QString &fileName, d->m_changedFiles) { + allFileNames << fileName; // Get the information from the filesystem QFileInfo fi(fileName); bool expected = false; @@ -756,13 +758,12 @@ void FileManager::checkForReload() } updateFileInfo(it.key()); } - } - - d->m_fileWatcher->removePath(fileName); - d->m_fileWatcher->addPath(fileName); } - + if (!allFileNames.isEmpty()) { + d->m_fileWatcher->removePaths(allFileNames); + d->m_fileWatcher->addPaths(allFileNames); + } d->m_changedFiles.clear(); d->m_blockActivated = false; } -- GitLab