diff options
author | Tomás Touceda <chiiph@leap.se> | 2014-02-20 17:11:03 -0300 |
---|---|---|
committer | Tomás Touceda <chiiph@leap.se> | 2014-02-20 17:11:03 -0300 |
commit | 66c5602b77547ec24674f5e40c1d244f28ff5a49 (patch) | |
tree | 91ef04803c589af26ef872563ab8fdf63d4bc516 /src/leap/mail/imap/memorystore.py | |
parent | 6f98424d41b38d5e56f54f312a6de871e3a82daa (diff) | |
parent | 976ec85451bef3fd380f69c64e803d7740d7dae4 (diff) |
Merge remote-tracking branch 'refs/remotes/kali/feature/speedup-select' into develop
Diffstat (limited to 'src/leap/mail/imap/memorystore.py')
-rw-r--r-- | src/leap/mail/imap/memorystore.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/leap/mail/imap/memorystore.py b/src/leap/mail/imap/memorystore.py index f23a234..6206468 100644 --- a/src/leap/mail/imap/memorystore.py +++ b/src/leap/mail/imap/memorystore.py @@ -364,9 +364,11 @@ class MemoryStore(object): # Update memory store size # XXX this should use [mbox][uid] - key = mbox, uid - self._sizes[key] = size.get_size(self._fdoc_store[key]) + # TODO --- this has to be deferred to thread, # TODO add hdoc and cdocs sizes too + # it's slowing things down here. + #key = mbox, uid + #self._sizes[key] = size.get_size(self._fdoc_store[key]) def purge_fdoc_store(self, mbox): """ @@ -504,12 +506,16 @@ class MemoryStore(object): if key in self._sizes: del self._sizes[key] self._known_uids[mbox].discard(uid) + except KeyError: + pass except Exception as exc: logger.error("error while removing message!") logger.exception(exc) try: with self._fdoc_docid_lock: del self._fdoc_id_store[mbox][uid] + except KeyError: + pass except Exception as exc: logger.error("error while removing message!") logger.exception(exc) @@ -724,17 +730,16 @@ class MemoryStore(object): :type mbox: str or unicode :rtype: dict """ - flags_dict = {} + fdict = {} uids = self.get_uids(mbox) - fdoc_store = self._fdoc_store[mbox] + fstore = self._fdoc_store[mbox] for uid in uids: try: - flags = fdoc_store[uid][fields.FLAGS_KEY] - flags_dict[uid] = flags + fdict[uid] = fstore[uid][fields.FLAGS_KEY] except KeyError: continue - return flags_dict + return fdict def all_headers(self, mbox): """ |