datarhei-dragonfork-core/app/webrtc
Zac Gaetano 3abd4d8fd1 feat(app/webrtc): broadcast process-stop via SetTeardownHook
Subsystem.SetTeardownHook installs a callback the subsystem invokes
just before closing per-stream Sources in onProcessStop. Used by the
WHEP Handler in M3 to drain its per-stream peer index before the
underlying Sources go away — closes the 'subscribers fan out into a
closed channel' race the design's §6 error matrix calls out as
'Publisher disconnects / FFmpeg exits'.

Single consumer by design (one subsystem, one handler). Calling
SetTeardownHook again replaces the previous callback; nil detaches.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-03 11:23:55 +00:00
..
ffmpeg_args.go feat(app/webrtc): port allocator + FFmpeg arg builder 2026-04-17 09:52:09 -04:00
ffmpeg_args_test.go feat(app/webrtc): port allocator + FFmpeg arg builder 2026-04-17 09:52:09 -04:00
handler.go feat(webrtc): add Echo WHEP handler for app/webrtc subsystem 2026-04-17 10:03:24 -04:00
handler_test.go feat(webrtc): add Echo WHEP handler for app/webrtc subsystem 2026-04-17 10:03:24 -04:00
integration_test.go test(webrtc): add M2 integration smoke test 2026-04-17 10:11:34 -04:00
lifecycle.go feat(app/webrtc): broadcast process-stop via SetTeardownHook 2026-05-03 11:23:55 +00:00
lifecycle_test.go feat(webrtc): add app/webrtc subsystem + lifecycle hooks 2026-04-17 10:02:00 -04:00
portalloc.go feat(app/webrtc): port allocator + FFmpeg arg builder 2026-04-17 09:52:09 -04:00
portalloc_test.go feat(app/webrtc): port allocator + FFmpeg arg builder 2026-04-17 09:52:09 -04:00
subsystem.go feat(app/webrtc): broadcast process-stop via SetTeardownHook 2026-05-03 11:23:55 +00:00