Coalesce as many fs events as possible before processing them

This commit is contained in:
Antonio Scandurra 2022-06-30 10:20:46 +02:00
parent b96962005e
commit 5df0a6a425

View File

@ -45,6 +45,7 @@ use std::{
os::unix::prelude::{OsStrExt, OsStringExt},
path::{Path, PathBuf},
sync::{atomic::AtomicUsize, Arc},
task::Poll,
time::{Duration, SystemTime},
};
use sum_tree::{Bias, Edit, SeekTarget, SumTree, TreeMap};
@ -2073,7 +2074,12 @@ impl BackgroundScanner {
}
futures::pin_mut!(events_rx);
while let Some(events) = events_rx.next().await {
while let Some(mut events) = events_rx.next().await {
while let Poll::Ready(Some(additional_events)) = futures::poll!(events_rx.next()) {
events.extend(additional_events);
}
if self.notify.unbounded_send(ScanState::Scanning).is_err() {
break;
}