Skip to content

Commit

Permalink
new_uids
Browse files Browse the repository at this point in the history
  • Loading branch information
squeaky-pl committed Nov 8, 2024
1 parent 229e428 commit 954061f
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion inbox/mailsync/backends/imap/generic.py
Original file line number Diff line number Diff line change
Expand Up @@ -877,11 +877,15 @@ def condstore_refresh_flags(self, crispin_client: CrispinClient) -> None:
self.account_id, db_session, self.folder_id
)

new_uids = remote_uids.difference(local_uids)
expunged_uids = local_uids.difference(remote_uids)
del local_uids # free memory as soon as possible
max_remote_uid = max(remote_uids) if remote_uids else 0
del remote_uids # free memory as soon as possible

if new_uids:
self.download_and_commit_uids(crispin_client, new_uids)

if expunged_uids:
# If new UIDs have appeared since we last checked in
# get_new_uids, save them first. We want to always have the
Expand Down Expand Up @@ -922,17 +926,21 @@ def refresh_flags_impl(self, crispin_client: CrispinClient, max_uids: int) -> No

with self.global_lock:
# Check for any deleted messages.
remote_uids = crispin_client.all_uids()
remote_uids = set(crispin_client.all_uids())

with session_scope(self.namespace_id) as db_session:
local_uids = common.local_uids(
self.account_id, db_session, self.folder_id
)

new_uids = remote_uids.difference(local_uids)
expunged_uids = local_uids.difference(remote_uids)
del local_uids # free memory as soon as possible
del remote_uids # free memory as soon as possible

if new_uids:
self.download_and_commit_uids(crispin_client, new_uids)

if expunged_uids:
with self.syncmanager_lock:
common.remove_deleted_uids(
Expand Down

0 comments on commit 954061f

Please sign in to comment.