summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2016-01-22 02:01:17 +0100
committerRuben Pollan <meskio@sindominio.net>2016-01-22 02:01:17 +0100
commit402099735333fb27707224fb90ba1b485b380b29 (patch)
tree2155c60bff892f26234918b3359e77aa07bfd884 /client
parent888d3d532770cb06fbc575088dc3e27edff8d703 (diff)
parent916eaecea19f611106c2b4cea1140025c9f87ba3 (diff)
Merge branch 'fix_sync_timeout' into develop
Diffstat (limited to 'client')
-rw-r--r--client/src/leap/soledad/client/encdecpool.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/client/src/leap/soledad/client/encdecpool.py b/client/src/leap/soledad/client/encdecpool.py
index 0954c1df..34667a1e 100644
--- a/client/src/leap/soledad/client/encdecpool.py
+++ b/client/src/leap/soledad/client/encdecpool.py
@@ -28,6 +28,7 @@ import json
import logging
from twisted.internet import reactor
+from twisted.internet import threads
from twisted.internet import defer
from twisted.python import log
@@ -687,7 +688,11 @@ class SyncDecrypterPool(SyncEncryptDecryptPool):
"""
insertable = yield self._get_insertable_docs()
for doc_fields in insertable:
- self._insert_decrypted_local_doc(*doc_fields)
+ method = self._insert_decrypted_local_doc
+ # FIXME: This is used only because SQLCipherU1DBSync is synchronous
+ # When adbapi is used there is no need for an external thread
+ # Without this the reactor can freeze and fail docs download
+ yield threads.deferToThread(method, *doc_fields)
defer.returnValue(insertable)
def _delete_processed_docs(self, inserted):