fix: Fix emitting ContactsChanged events on "recently seen" status change (#5377)

- Always emit `ContactsChanged` from `contact::update_last_seen()` if a contact was seen recently
  just for simplicity and symmetry with `RecentlySeenLoop::run()` which also may emit several events
  for single contact.
- Fix sleep time calculation in `RecentlySeenLoop::run()` -- `now` must be updated on every
  iteration, before the initial value was used every time which led to progressively long sleeps.
This commit is contained in:
iequidoo
2024-04-05 22:48:32 -03:00
committed by iequidoo
parent b753440a68
commit b6a12e3914
4 changed files with 62 additions and 5 deletions

View File

@@ -924,7 +924,7 @@ impl Scheduler {
}
fn interrupt_recently_seen(&self, contact_id: ContactId, timestamp: i64) {
self.recently_seen_loop.interrupt(contact_id, timestamp);
self.recently_seen_loop.try_interrupt(contact_id, timestamp);
}
/// Halt the scheduler.