diff --git a/parsedmarc/mail/graph.py b/parsedmarc/mail/graph.py index 513ece3..a2f5c0e 100644 --- a/parsedmarc/mail/graph.py +++ b/parsedmarc/mail/graph.py @@ -284,6 +284,8 @@ class MSGraphConnection(MailboxConnection): if should_reload and should_reload(): return sleep(check_timeout) + if should_reload and should_reload(): + return check_callback(self) @lru_cache(maxsize=10) diff --git a/parsedmarc/mail/imap.py b/parsedmarc/mail/imap.py index d9d8bb4..b084bd9 100644 --- a/parsedmarc/mail/imap.py +++ b/parsedmarc/mail/imap.py @@ -94,6 +94,8 @@ class IMAPConnection(MailboxConnection): check_callback(self) while True: + if should_reload and should_reload(): + return try: IMAPClient( host=self._client.host, diff --git a/parsedmarc/mail/maildir.py b/parsedmarc/mail/maildir.py index 255cea0..20b08a0 100644 --- a/parsedmarc/mail/maildir.py +++ b/parsedmarc/mail/maildir.py @@ -65,6 +65,8 @@ class MaildirConnection(MailboxConnection): def watch(self, check_callback, check_timeout, should_reload=None): while True: + if should_reload and should_reload(): + return try: check_callback(self) except Exception as e: