forked from qt-creator/qt-creator
ClearCase: Fix race condition
setStatus() is invoked in the main thread, but the status change is tested for in the sync thread... Change-Id: Ib322e12e7d40dafa6b60f3a73a202e8e1dcbfb53 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
691ade1747
commit
3f44c6d0be
@@ -81,6 +81,7 @@
|
||||
#include <QMainWindow>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
#include <QMetaObject>
|
||||
#include <QMutex>
|
||||
#include <QProcess>
|
||||
#include <QRegExp>
|
||||
@@ -88,7 +89,6 @@
|
||||
#include <QtConcurrentRun>
|
||||
#include <QTemporaryFile>
|
||||
#include <QTextCodec>
|
||||
#include <QTimer>
|
||||
#include <QtPlugin>
|
||||
#include <QUrl>
|
||||
#include <QUuid>
|
||||
@@ -642,11 +642,11 @@ void ClearCasePlugin::addCurrentFile()
|
||||
vcsAdd(state.currentFileTopLevel(), state.relativeCurrentFile());
|
||||
}
|
||||
|
||||
void ClearCasePlugin::setStatus(const QString &file, ClearCase::Internal::FileStatus::Status status, bool update)
|
||||
void ClearCasePlugin::setStatus(const QString &file, FileStatus::Status status, bool update)
|
||||
{
|
||||
m_statusMap->insert(file, FileStatus(status, QFileInfo(currentState().topLevel(), file).permissions()));
|
||||
if (update && (currentState().relativeCurrentFile() == file))
|
||||
updateStatusActions();
|
||||
QMetaObject::invokeMethod(this, "updateStatusActions");
|
||||
}
|
||||
|
||||
void ClearCasePlugin::undoCheckOutCurrent()
|
||||
@@ -1940,8 +1940,6 @@ void ClearCasePlugin::sync(QFutureInterface<void> &future, QString topLevel, QSt
|
||||
ClearCasePlugin *plugin = ClearCasePlugin::instance();
|
||||
ClearCaseSync ccSync(plugin, plugin->m_statusMap);
|
||||
connect(&ccSync, SIGNAL(updateStreamAndView()), plugin, SLOT(updateStreamAndView()));
|
||||
connect(&ccSync, SIGNAL(setStatus(QString, ClearCase::Internal::FileStatus::Status, bool)),
|
||||
plugin, SLOT(setStatus(QString, ClearCase::Internal::FileStatus::Status, bool)));
|
||||
ccSync.run(future, topLevel, files);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user