summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries/session.py
diff options
context:
space:
mode:
authorJon Newson <jon_newson@ieee.org>2016-02-25 07:14:06 +1100
committerJon Newson <jon_newson@ieee.org>2016-02-25 07:14:06 +1100
commitc1f468abad6717fcabc2d812e34f4217215e70a8 (patch)
tree8ee1d7fe6463eaf5edad736d8d7b058a360b78f1 /service/pixelated/bitmask_libraries/session.py
parent47df3a86d7cf412d766f8a1fdd1e9b9fe15bfb45 (diff)
parent6160633ab9a54238974af3cf498024ad98fc977e (diff)
Merge commit '6160633ab9a54238974af3cf498024ad98fc977e'
* commit '6160633ab9a54238974af3cf498024ad98fc977e': Fix repositore clone url Returning 'not-sign' for no signature information Only do initial sync on session creation Improve stopwatch output Improve error message if send mail fails
Diffstat (limited to 'service/pixelated/bitmask_libraries/session.py')
-rw-r--r--service/pixelated/bitmask_libraries/session.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/service/pixelated/bitmask_libraries/session.py b/service/pixelated/bitmask_libraries/session.py
index 9e908ce5..f28d9f59 100644
--- a/service/pixelated/bitmask_libraries/session.py
+++ b/service/pixelated/bitmask_libraries/session.py
@@ -53,12 +53,20 @@ class LeapSession(object):
self.fresh_account = False
self.incoming_mail_fetcher = None
self.account = None
+ self._has_been_synced = False
+ self._sem_intial_sync = defer.DeferredLock()
register(events.KEYMANAGER_FINISHED_KEY_GENERATION, self._set_fresh_account, uid=self.account_email())
@defer.inlineCallbacks
def initial_sync(self):
- yield self.sync()
- yield self.after_first_sync()
+ yield self._sem_intial_sync.acquire()
+ try:
+ if not self._has_been_synced:
+ yield self.sync()
+ yield self.after_first_sync()
+ self._has_been_synced = True
+ finally:
+ yield self._sem_intial_sync.release()
defer.returnValue(self)
@defer.inlineCallbacks