summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVictor Shyba <victor1984@riseup.net>2017-10-25 22:52:34 -0300
committerVictor Shyba <victor1984@riseup.net>2017-10-27 16:01:48 -0300
commitf4ab4e15ba2fd6eb06bcd71e8fe04abc903d4ff0 (patch)
tree2a639c16d702250e33a4612432fb4892af2aaf71 /src
parent5faf22e4603d8130d11890f43f2f002821e8a976 (diff)
[refactor] semaphore.run instead acquire/release
Diffstat (limited to 'src')
-rw-r--r--src/leap/soledad/client/_db/blobs/sync.py22
1 files changed, 5 insertions, 17 deletions
diff --git a/src/leap/soledad/client/_db/blobs/sync.py b/src/leap/soledad/client/_db/blobs/sync.py
index d2b7bed6..a1b5cc4c 100644
--- a/src/leap/soledad/client/_db/blobs/sync.py
+++ b/src/leap/soledad/client/_db/blobs/sync.py
@@ -78,18 +78,12 @@ class BlobsSynchronizer(object):
deferreds = []
semaphore = defer.DeferredSemaphore(self.concurrent_transfers_limit)
- def release(result):
- print result
- semaphore.release()
- return result
-
for i in xrange(total):
- yield semaphore.acquire()
blob_id = missing.pop()
- d = with_retry(self.__send_one, blob_id, namespace, i, total)
- d.addCallbacks(release, release)
+ d = semaphore.run(
+ with_retry, self.__send_one, blob_id, namespace, i, total)
deferreds.append(d)
- yield defer.gatherResults(deferreds)
+ yield defer.gatherResults(deferreds, consumeErrors=True)
@defer.inlineCallbacks
def __send_one(self, blob_id, namespace, i, total):
@@ -127,18 +121,12 @@ class BlobsSynchronizer(object):
deferreds = []
semaphore = defer.DeferredSemaphore(self.concurrent_transfers_limit)
- def release(result):
- semaphore.release()
- return result
-
for i in xrange(len(docs_we_want)):
- yield semaphore.acquire()
blob_id = docs_we_want.pop()
logger.info("Fetching blob (%d/%d): %s" % (i, total, blob_id))
- d = with_retry(self.get, blob_id, namespace)
- d.addCallbacks(release, release)
+ d = semaphore.run(with_retry, self.get, blob_id, namespace)
deferreds.append(d)
- yield defer.gatherResults(deferreds)
+ yield defer.gatherResults(deferreds, consumeErrors=True)
@defer.inlineCallbacks
def sync(self, namespace=''):