From a05a00a78d750904456a649334bba619b07a3380 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 11 Feb 2014 01:40:30 -0400 Subject: call notify in reactor --- src/leap/mail/imap/server.py | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/leap/mail/imap/server.py') diff --git a/src/leap/mail/imap/server.py b/src/leap/mail/imap/server.py index 89fb46d..3497a8b 100644 --- a/src/leap/mail/imap/server.py +++ b/src/leap/mail/imap/server.py @@ -56,6 +56,9 @@ class LeapIMAPServer(imap4.IMAP4Server): # populate the test account properly (and only once # per session) + from twisted.internet import reactor + self.reactor = reactor + def lineReceived(self, line): """ Attempt to parse a single line from the server. @@ -141,30 +144,23 @@ class LeapIMAPServer(imap4.IMAP4Server): imap4.IMAP4Server.arg_fetchatt) def on_fetch_finished(self, _, messages): - from twisted.internet import reactor - - print "FETCH FINISHED -- NOTIFY NEW" - deferLater(reactor, 0, self.notifyNew) - deferLater(reactor, 0, self.mbox.unset_recent_flags, messages) - deferLater(reactor, 0, self.mbox.signal_unread_to_ui) + deferLater(self.reactor, 0, self.notifyNew) + deferLater(self.reactor, 0, self.mbox.unset_recent_flags, messages) + deferLater(self.reactor, 0, self.mbox.signal_unread_to_ui) def on_copy_finished(self, defers): d = defer.gatherResults(filter(None, defers)) def when_finished(result): - log.msg("COPY FINISHED") self.notifyNew() self.mbox.signal_unread_to_ui() d.addCallback(when_finished) - #d.addCallback(self.notifyNew) - #d.addCallback(self.mbox.signal_unread_to_ui) def do_COPY(self, tag, messages, mailbox, uid=0): - from twisted.internet import reactor defers = [] d = imap4.IMAP4Server.do_COPY(self, tag, messages, mailbox, uid) defers.append(d) - deferLater(reactor, 0, self.on_copy_finished, defers) + deferLater(self.reactor, 0, self.on_copy_finished, defers) select_COPY = (do_COPY, imap4.IMAP4Server.arg_seqset, imap4.IMAP4Server.arg_astring) @@ -173,8 +169,7 @@ class LeapIMAPServer(imap4.IMAP4Server): """ Notify new messages to listeners. """ - print "TRYING TO NOTIFY NEW" - self.mbox.notify_new() + self.reactor.callFromThread(self.mbox.notify_new) def _cbSelectWork(self, mbox, cmdName, tag): """ -- cgit v1.2.3