Skip to content

Commit 47a926c

Browse files
authored
refactor: Don't add a dummy in mark_filter_received (#222)
The processing parts already does the same checks as the "dummy adding" parts.
1 parent 7352740 commit 47a926c

File tree

2 files changed

+21
-38
lines changed

2 files changed

+21
-38
lines changed

dash-spv/src/sync/filters/download.rs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,9 @@ impl<S: StorageManager + Send + Sync + 'static, N: NetworkManager + Send + Sync
205205
&mut self,
206206
block_hash: BlockHash,
207207
storage: &S,
208-
) -> SyncResult<Vec<(u32, u32)>> {
208+
) -> SyncResult<()> {
209209
if !self.flow_control_enabled {
210-
return Ok(Vec::new());
210+
return Ok(());
211211
}
212212

213213
// Record the received filter
@@ -241,18 +241,7 @@ impl<S: StorageManager + Send + Sync + 'static, N: NetworkManager + Send + Sync
241241
}
242242
}
243243

244-
// Always return at least one "completion" to trigger queue processing
245-
// This ensures we continuously utilize available slots instead of waiting for 100% completion
246-
if completed_requests.is_empty() && !self.pending_filter_requests.is_empty() {
247-
// If we have available slots and pending requests, trigger processing
248-
let available_slots =
249-
MAX_CONCURRENT_FILTER_REQUESTS.saturating_sub(self.active_filter_requests.len());
250-
if available_slots > 0 {
251-
completed_requests.push((0, 0)); // Dummy completion to trigger processing
252-
}
253-
}
254-
255-
Ok(completed_requests)
244+
Ok(())
256245
}
257246

258247
async fn is_request_complete(&self, start: u32, end: u32) -> SyncResult<bool> {

dash-spv/src/sync/sequential/message_handlers.rs

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -640,32 +640,26 @@ impl<
640640
}
641641

642642
// Handle filter message tracking
643-
let completed_ranges =
644-
self.filter_sync.mark_filter_received(cfilter.block_hash, storage).await?;
645-
646-
// Process any newly completed ranges
647-
if !completed_ranges.is_empty() {
648-
tracing::debug!("Completed {} filter request ranges", completed_ranges.len());
649-
650-
// Send more filter requests from the queue if we have available slots
651-
if self.filter_sync.has_pending_filter_requests() {
652-
let available_slots = self.filter_sync.get_available_request_slots();
653-
if available_slots > 0 {
654-
tracing::debug!(
655-
"Sending more filter requests: {} slots available, {} pending",
656-
available_slots,
657-
self.filter_sync.pending_download_count()
658-
);
659-
self.filter_sync.send_next_filter_batch(network).await?;
660-
} else {
661-
tracing::trace!(
662-
"No available slots for more filter requests (all {} slots in use)",
663-
self.filter_sync.active_request_count()
664-
);
665-
}
643+
self.filter_sync.mark_filter_received(cfilter.block_hash, storage).await?;
644+
645+
// Send more filter requests from the queue if we have available slots
646+
if self.filter_sync.has_pending_filter_requests() {
647+
let available_slots = self.filter_sync.get_available_request_slots();
648+
if available_slots > 0 {
649+
tracing::debug!(
650+
"Sending more filter requests: {} slots available, {} pending",
651+
available_slots,
652+
self.filter_sync.pending_download_count()
653+
);
654+
self.filter_sync.send_next_filter_batch(network).await?;
666655
} else {
667-
tracing::trace!("No more pending filter requests in queue");
656+
tracing::trace!(
657+
"No available slots for more filter requests (all {} slots in use)",
658+
self.filter_sync.active_request_count()
659+
);
668660
}
661+
} else {
662+
tracing::trace!("No more pending filter requests in queue");
669663
}
670664

671665
// Update phase state

0 commit comments

Comments
 (0)