Interrupt ephemeral loop when new messages are fetched

This commit is contained in:
link2xt
2022-04-10 21:46:01 +00:00
parent 574b78cf31
commit f75f8ad76d

View File

@@ -458,9 +458,15 @@ impl Imap {
} }
self.prepare(context).await?; self.prepare(context).await?;
self.fetch_new_messages(context, watch_folder, false) if self
.fetch_new_messages(context, watch_folder, false)
.await .await
.context("fetch_new_messages")?; .context("fetch_new_messages")?
{
// New messages were fetched, restart ephemeral loop in case these messages will expire
// later.
context.interrupt_ephemeral_task().await;
}
self.move_delete_messages(context, watch_folder) self.move_delete_messages(context, watch_folder)
.await .await
@@ -658,6 +664,9 @@ impl Imap {
Ok(false) Ok(false)
} }
/// Fetches new messages.
///
/// Returns true if at least one message was fetched.
pub(crate) async fn fetch_new_messages( pub(crate) async fn fetch_new_messages(
&mut self, &mut self,
context: &Context, context: &Context,