From 99ec94f08fb2d062eb2c350b64971ea9ad8d87dd Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 17 Feb 2014 13:59:06 -0400 Subject: avoid unneeded db index updates and rdoc creation --- src/leap/mail/imap/mailbox.py | 6 ------ src/leap/mail/imap/messages.py | 10 +++++++--- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'src/leap/mail/imap') diff --git a/src/leap/mail/imap/mailbox.py b/src/leap/mail/imap/mailbox.py index be8b429..d7be662 100644 --- a/src/leap/mail/imap/mailbox.py +++ b/src/leap/mail/imap/mailbox.py @@ -132,14 +132,9 @@ class SoledadMailbox(WithMsgFields, MBoxParser): :param rw: read-and-write flag for this mailbox :type rw: int """ - logger.debug("Initializing mailbox %r" % (mbox,)) leap_assert(mbox, "Need a mailbox name to initialize") leap_assert(soledad, "Need a soledad instance to initialize") - # XXX should move to wrapper - #leap_assert(isinstance(soledad._db, SQLCipherDatabase), - #"soledad._db must be an instance of SQLCipherDatabase") - self.mbox = self._parse_mailbox_name(mbox) self.rw = rw @@ -168,7 +163,6 @@ class SoledadMailbox(WithMsgFields, MBoxParser): # purge memstore from empty fdocs. self._memstore.purge_fdoc_store(mbox) - logger.debug("DONE initializing mailbox %r" % (mbox,)) @property def listeners(self): diff --git a/src/leap/mail/imap/messages.py b/src/leap/mail/imap/messages.py index fc1ec55..9bd64fc 100644 --- a/src/leap/mail/imap/messages.py +++ b/src/leap/mail/imap/messages.py @@ -686,6 +686,8 @@ class MessageCollection(WithMsgFields, IndexedDB, MailParser, MBoxParser): _rdoc_lock = threading.Lock() _rdoc_property_lock = threading.Lock() + _initialized = {} + def __init__(self, mbox=None, soledad=None, memstore=None): """ Constructor for MessageCollection. @@ -725,10 +727,12 @@ class MessageCollection(WithMsgFields, IndexedDB, MailParser, MBoxParser): self.memstore = memstore self.__rflags = None - self.initialize_db() - # ensure that we have a recent-flags and a hdocs-sec doc - self._get_or_create_rdoc() + if not self._initialized.get(mbox, False): + self.initialize_db() + # ensure that we have a recent-flags and a hdocs-sec doc + self._get_or_create_rdoc() + self._initialized[mbox] = True from twisted.internet import reactor self.reactor = reactor -- cgit v1.2.3