diff options
author | drebs <drebs@leap.se> | 2014-07-23 10:49:44 -0300 |
---|---|---|
committer | drebs <drebs@leap.se> | 2014-08-08 11:49:02 -0300 |
commit | 609669077b2f7223c31feed3679c8fcd74ab9ba7 (patch) | |
tree | e297be4217366231f4ccb746798033104517ed53 /client/src/leap/soledad | |
parent | 8afb79c4d2171b03270143639296cbb6d9d0fdfa (diff) |
Avoid deadlocks when cancelling failed sync threads.
Diffstat (limited to 'client/src/leap/soledad')
-rw-r--r-- | client/src/leap/soledad/client/target.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/client/src/leap/soledad/client/target.py b/client/src/leap/soledad/client/target.py index 032134ec..5fe55216 100644 --- a/client/src/leap/soledad/client/target.py +++ b/client/src/leap/soledad/client/target.py @@ -376,6 +376,12 @@ class DocumentSyncerPool(object): t.request_lock.release() t.callback_lock.acquire(False) # just in case t.callback_lock.release() + # release any blocking semaphores + for i in xrange(DocumentSyncerPool.POOL_SIZE): + try: + self._semaphore_pool.release() + except ValueError: + break logger.warning("Soledad sync: cancelled sync threads.") def cleanup(self): |