diff --git a/melib/src/backends/imap.rs b/melib/src/backends/imap.rs index 3b79e8b3..d6bd6169 100644 --- a/melib/src/backends/imap.rs +++ b/melib/src/backends/imap.rs @@ -284,9 +284,12 @@ impl MailBackend for ImapType { *folders = ImapType::imap_folders(&self.connection); folders.retain(|_, f| (self.is_subscribed)(f.path())); let keys = folders.keys().cloned().collect::>(); + let mut uid_lock = self.uid_store.uidvalidity.lock().unwrap(); for f in folders.values_mut() { + uid_lock.entry(f.hash()).or_default(); f.children.retain(|c| keys.contains(c)); } + drop(uid_lock); *self.online.lock().unwrap() = true; Ok(folders .iter()