aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clearcase/clearcaseplugin.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <[email protected]>2012-11-12 16:48:26 +0200
committerOrgad Shaneh <[email protected]>2012-11-16 14:13:14 +0100
commit3f44c6d0becc704538523a84593efb4e1719c84c (patch)
treebbd36e459112e580bff180442de47dd7d18a3d34 /src/plugins/clearcase/clearcaseplugin.cpp
parent691ade174771141b6c5efb0d7f2e983826c6670c (diff)
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 <[email protected]>
Diffstat (limited to 'src/plugins/clearcase/clearcaseplugin.cpp')
-rw-r--r--src/plugins/clearcase/clearcaseplugin.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp
index 99ce042a5e8..b37aa68be07 100644
--- a/src/plugins/clearcase/clearcaseplugin.cpp
+++ b/src/plugins/clearcase/clearcaseplugin.cpp
@@ -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);
}