From 609669077b2f7223c31feed3679c8fcd74ab9ba7 Mon Sep 17 00:00:00 2001 From: drebs Date: Wed, 23 Jul 2014 10:49:44 -0300 Subject: Avoid deadlocks when cancelling failed sync threads. --- client/src/leap/soledad/client/target.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'client') 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): -- cgit v1.2.3