···160160 std::sync::Mutex::new(resync::dispatcher::DispatcherSnapshot::default()),
161161 );
162162163163- let discovery_queue = std::sync::Arc::new(DiscoveryQueue::new(4096, 36));
163163+ let discovery_queue = std::sync::Arc::new(DiscoveryQueue::new(8192, 32));
164164165165 let mut tasks: JoinSet<Result<()>> = JoinSet::new();
166166
+6-1
src/sync/resync/mod.rs
···6060 /// The repo state has been updated; the caller may schedule a slow retry.
6161 #[error("repo not found on PDS")]
6262 RepoNotFound,
6363+ #[error("externally cancelled")]
6464+ Cancelled,
6365}
64666567/// A snapshot of a repository's state as observed during a resync.
···147149 // spawn_blocking closures (which require 'static captures).
148150 let did: Did<'static> = did.into_static();
149151150150- let resolved = resolver.resolve(&did).await?;
152152+ let Some(resolved) = token.run(resolver.resolve(&did)).await else {
153153+ return Err(ResyncError::Cancelled);
154154+ };
155155+ let resolved = resolved?;
151156 let base = &*resolved.pds;
152157153158 let repo_snapshot = match fetch_collections(