5.8.8
Bug-fix release: exiting a long live DVR channel no longer freezes the UI.
Fixed
-
Exiting a long live DVR channel no longer freezes the UI for several seconds.
PacketRingBuffer.close()collected every spooled packet file and deleted them one at a time on the calling thread. A live software-host stream held open for minutes spools tens of thousands of packet files, so the O(n) filesystem walk stalled the caller for 5-30 s and, whenclose()ran on the main actor, blocked switching between channels / exiting the stream.close()is now idempotent (the in-RAM index is cleared synchronously under the lock, so the ring is immediately unusable) and dispatches the scratch-directory removal to a background queue, so filesystem I/O never blocks the caller. Every spooled file lives under the per-instancedvr-<UUID>scratch dir, so a single recursive removal covers them all and a second teardown from a racing thread is a harmless no-op. VOD playback is unaffected (no DVR ring). Reported and fixed by Nathan Piper (nathanpiper), device-verified on Apple TV 4K (3rd gen), tvOS 26.5.
Consumers on 5.8.7 should bump.