[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