diff options
author | Jon Newson <jon_newson@ieee.org> | 2016-02-25 07:14:06 +1100 |
---|---|---|
committer | Jon Newson <jon_newson@ieee.org> | 2016-02-25 07:14:06 +1100 |
commit | c1f468abad6717fcabc2d812e34f4217215e70a8 (patch) | |
tree | 8ee1d7fe6463eaf5edad736d8d7b058a360b78f1 /service/pixelated/bitmask_libraries/session.py | |
parent | 47df3a86d7cf412d766f8a1fdd1e9b9fe15bfb45 (diff) | |
parent | 6160633ab9a54238974af3cf498024ad98fc977e (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.py | 12 |
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 |