summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/services/mail
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2015-01-16 20:03:11 -0400
committerKali Kaneko <kali@leap.se>2015-02-11 14:06:44 -0400
commit782fb8d66aabb29d68712e2fc220d967ef8dfcf5 (patch)
tree1bd536cb99e824a288923be90fe7bd7409ea09e7 /src/leap/bitmask/services/mail
parent46fabd42ad4cac7ce1b7f1818064f1c2e5c002c1 (diff)
remove use of threading.Condition
we should deal with this with pure deferreds
Diffstat (limited to 'src/leap/bitmask/services/mail')
-rw-r--r--src/leap/bitmask/services/mail/imapcontroller.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/src/leap/bitmask/services/mail/imapcontroller.py b/src/leap/bitmask/services/mail/imapcontroller.py
index bb9eb9dc..1b39ef91 100644
--- a/src/leap/bitmask/services/mail/imapcontroller.py
+++ b/src/leap/bitmask/services/mail/imapcontroller.py
@@ -84,16 +84,16 @@ class IMAPController(object):
d.addCallback(assign_incoming_service)
d.addErrback(lambda f: logger.error(f.printTraceback()))
- def stop_imap_service(self, cv):
+ def stop_imap_service(self):
"""
Stop IMAP service (fetcher, factory and port).
-
- :param cv: A condition variable to which we can signal when imap
- indeed stops.
- :type cv: threading.Condition
"""
if self.incoming_mail_service is not None:
# Stop the loop call in the fetcher
+
+ # XXX BUG -- the deletion of the reference should be made
+ # after stopService() triggers its deferred (ie, cleanup has been
+ # made)
self.incoming_mail_service.stopService()
self.incoming_mail_service = None
@@ -103,12 +103,7 @@ class IMAPController(object):
# Stop the protocol
self.imap_factory.theAccount.closed = True
- self.imap_factory.doStop(cv)
- else:
- # Release the condition variable so the caller doesn't have to wait
- cv.acquire()
- cv.notify()
- cv.release()
+ self.imap_factory.doStop()
def fetch_incoming_mail(self):
"""