summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorTomás Touceda <chiiph@leap.se>2014-09-29 13:43:50 -0300
committerTomás Touceda <chiiph@leap.se>2014-09-29 13:43:50 -0300
commite2ca6ff9539e2a0294dd1dc2b76879a1ebeb60ba (patch)
tree0ff727462a387b7a634c2259894dfb1398b968a0 /client
parent509f76c21c7c847dc4111847a3585be7bb67e350 (diff)
parent19f28c432f36022c5f1c0558f4742c864e7202c8 (diff)
Merge remote-tracking branch 'refs/remotes/drebs/bug/5975_fix-transaction-log-order' into develop
Diffstat (limited to 'client')
-rw-r--r--client/changes/bug_5975_wait-for-last-request-on-sync1
-rw-r--r--client/src/leap/soledad/client/target.py8
2 files changed, 8 insertions, 1 deletions
diff --git a/client/changes/bug_5975_wait-for-last-request-on-sync b/client/changes/bug_5975_wait-for-last-request-on-sync
new file mode 100644
index 00000000..7a394580
--- /dev/null
+++ b/client/changes/bug_5975_wait-for-last-request-on-sync
@@ -0,0 +1 @@
+ o Wait for last post request to finish before starting a new one (#5975).
diff --git a/client/src/leap/soledad/client/target.py b/client/src/leap/soledad/client/target.py
index ae2010a6..651d3ee5 100644
--- a/client/src/leap/soledad/client/target.py
+++ b/client/src/leap/soledad/client/target.py
@@ -1176,6 +1176,7 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth):
synced = []
number_of_docs = len(docs_by_generations)
+ last_request_lock = None
for doc, gen, trans_id in docs_by_generations:
# allow for interrupting the sync process
if self.stopped is True:
@@ -1212,7 +1213,7 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth):
# end of symmetric encryption
# -------------------------------------------------------------
t = syncer_pool.new_syncer_thread(
- sent + 1, total, last_request_lock=None,
+ sent + 1, total, last_request_lock=last_request_lock,
last_callback_lock=last_callback_lock)
# bail out if any thread failed
@@ -1249,7 +1250,12 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth):
# save thread and append
t.start()
threads.append((t, doc))
+
+ # update lock references so they can be used in next call to
+ # syncer_pool.new_syncer_thread() above
last_callback_lock = t.callback_lock
+ last_request_lock = t.request_lock
+
sent += 1
# make sure all threads finished and we have up-to-date info