[Pkg-owncloud-commits] [owncloud-client] 03/333: Start all the jobs in parallel
Sandro Knauß
hefee-guest at moszumanska.debian.org
Thu Apr 17 23:16:26 UTC 2014
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit f67d2e6418e75d300f32347e469c7dad253654d2
Author: Olivier Goffart <ogoffart at woboq.com>
Date: Thu Feb 6 12:11:45 2014 +0100
Start all the jobs in parallel
---
src/mirall/owncloudpropagator.cpp | 18 ++++++++++++------
src/mirall/owncloudpropagator.h | 4 ++--
2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/src/mirall/owncloudpropagator.cpp b/src/mirall/owncloudpropagator.cpp
index e8bbba6..3777803 100644
--- a/src/mirall/owncloudpropagator.cpp
+++ b/src/mirall/owncloudpropagator.cpp
@@ -1087,13 +1087,13 @@ void PropagateDirectory::start()
_current = -1;
_hasError = SyncFileItem::NoStatus;
if (!_firstJob) {
- proceedNext(SyncFileItem::Success);
+ slotSubJobFinished(SyncFileItem::Success);
} else {
startJob(_firstJob.data());
}
}
-void PropagateDirectory::proceedNext(SyncFileItem::Status status)
+void PropagateDirectory::slotSubJobFinished(SyncFileItem::Status status)
{
if (status == SyncFileItem::FatalError) {
emit finished(status);
@@ -1102,11 +1102,17 @@ void PropagateDirectory::proceedNext(SyncFileItem::Status status)
_hasError = status;
}
+ if (_current == -1) {
+ // Start all the jobs
+ foreach( PropagatorJob *next , _subJobs ) {
+ startJob(next);
+ }
+ }
+
_current ++;
- if (_current < _subJobs.size() && !_propagator->_abortRequested->fetchAndAddRelaxed(0)) {
- PropagatorJob *next = _subJobs.at(_current);
- startJob(next);
- } else {
+ if (_current >= _subJobs.size()) {
+ // We finished to process all the jobs
+
if (!_item.isEmpty() && _hasError == SyncFileItem::NoStatus) {
if( !_item._renameTarget.isEmpty() ) {
_item._file = _item._renameTarget;
diff --git a/src/mirall/owncloudpropagator.h b/src/mirall/owncloudpropagator.h
index c66f811..64de7ce 100644
--- a/src/mirall/owncloudpropagator.h
+++ b/src/mirall/owncloudpropagator.h
@@ -83,13 +83,13 @@ public:
private slots:
void startJob(PropagatorJob *next) {
- connect(next, SIGNAL(finished(SyncFileItem::Status)), this, SLOT(proceedNext(SyncFileItem::Status)), Qt::QueuedConnection);
+ connect(next, SIGNAL(finished(SyncFileItem::Status)), this, SLOT(slotSubJobFinished(SyncFileItem::Status)), Qt::QueuedConnection);
connect(next, SIGNAL(completed(SyncFileItem)), this, SIGNAL(completed(SyncFileItem)));
connect(next, SIGNAL(progress(Progress::Kind,SyncFileItem,quint64,quint64)), this, SIGNAL(progress(Progress::Kind,SyncFileItem,quint64,quint64)));
QMetaObject::invokeMethod(next, "start");
}
- void proceedNext(SyncFileItem::Status status);
+ void slotSubJobFinished(SyncFileItem::Status status);
};
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list