fix(peer): coalesce full UI view publications
Keep one queued and one replaceable pending snapshot for remote-library and Call-to-Play views while preserving lifecycle-event FIFO delivery. Generation barriers and fenced drains prevent stale nonempty views from crossing disable or acknowledgement boundaries. Test Plan: - just test - just clippy - focused burst, lifecycle ordering, fence, repeated-barrier, and stale-view tests - independent ordering review - git diff --check
This commit is contained in:
1 parent
470e119515
commit
37420e26ed
17 files changed
+828
-251
No files matched your search
@@ -504,7 +504,7 @@ mod tests {
|
||||
CatalogContentManifestBody,
|
||||
CatalogExtractedEntry,
|
||||
};
|
||||
use tokio::sync::{RwLock, mpsc};
|
||||
use tokio::sync::RwLock;
|
||||
use tokio_util::task::TaskTracker;
|
||||
|
||||
use super::*;
|
||||
@@ -611,7 +611,7 @@ mod tests {
|
||||
root: &Path,
|
||||
manifest: &CatalogContentManifest,
|
||||
provider: Arc<CountingStreamInstallProvider>,
|
||||
) -> (PeerCtx, mpsc::UnboundedReceiver<crate::PeerEvent>) {
|
||||
) -> (PeerCtx, crate::PeerEventReceiver) {
|
||||
let catalog = Arc::new(
|
||||
CatalogBundle::from_manifests([manifest.clone()])
|
||||
.expect("test catalog should be complete"),
|
||||
@@ -643,7 +643,7 @@ mod tests {
|
||||
availability: Availability::Ready,
|
||||
},
|
||||
);
|
||||
let (tx, rx) = mpsc::unbounded_channel();
|
||||
let (tx, rx) = crate::peer_event_channel();
|
||||
(ctx.to_peer_ctx(tx, CancellationToken::new()), rx)
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user