srs/trunk
Winlin 421ab6c3fb
WebRTC: Fix race condition in RTC publish timer callbacks. v7.0.76 (#4470)
WebRTC RTC publish streams use timer callbacks (`SrsRtcPublishRtcpTimer`
and `SrsRtcPublishTwccTimer`) that can cause race conditions in SRS's
coroutine-based architecture. The timer callbacks are heavy functions
that may trigger coroutine switches, during which the timer object can
be freed by another coroutine, leading to use-after-free crashes.

The race condition occurs because:
1. Timer callbacks (`on_timer`) perform heavy operations that can yield
control
2. During coroutine switches, other coroutines may destroy the timer
object
3. When control returns, the callback continues executing on a freed
object

Fixes potential crashes in WebRTC RTC publish streams under high
concurrency.
2025-09-03 19:45:24 -04:00
..
3rdparty AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
auto AI: Extract shared components and improve SRS server architecture. v7.0.70 (#4461) 2025-08-31 19:14:34 -04:00
conf AI: GB28181: Remove embedded SIP server and enforce external SIP usage. v7.0.75 (#4466) 2025-09-02 09:59:40 -04:00
doc WebRTC: Fix race condition in RTC publish timer callbacks. v7.0.76 (#4470) 2025-09-03 19:45:24 -04:00
etc/init.d Squash: Fix bugs 2022-01-13 18:26:28 +08:00
gdb The identifier "ShowCouroutines" needs to be modified to "ShowCoroutines" in order to rectify the typographical error. v6.0.63 (#3703) 2023-07-27 08:12:39 +08:00
ide/srs_clion HLS: restore HLS information when republish stream.(#3088). v7.0.57 (#3126) 2025-08-19 22:09:54 -06:00
packaging/redhat AI: Remove cygwin64, always enable WebRTC, and enforce C++98 compatibility. v7.0.60 (#4447) 2025-08-21 10:03:38 -06:00
research Player: Get codec by webrtc api: pc.getStats. v7.0.42 (#4310) 2025-06-04 10:28:46 -04:00
scripts AI: Config: Move RTMP configs to rtmp{} section. v7.0.64 (#4454) 2025-08-27 19:27:23 -04:00
src WebRTC: Fix race condition in RTC publish timer callbacks. v7.0.76 (#4470) 2025-09-03 19:45:24 -04:00
usr/lib/systemd/system Squash: Support RPM. Fix bugs. 2021-11-04 07:37:17 +08:00
.gitignore rtc2rtmp: Support RTC-to-RTMP remuxing with HEVC. v7.0.43 (#4349) 2025-07-03 08:24:42 -04:00
AUTHORS.md Reorder maintainers ranked by number of commits. 2025-08-14 07:23:03 -06:00
AUTHORS.txt Update AUTHORS 2021-08-25 07:43:35 +08:00
configure AI: Replace SrsSharedPtrMessage with SrsMediaPacket for unified media packet handling. v7.0.74 (#4465) 2025-09-01 18:06:24 -04:00
Dockerfile.builds Refine code and add tests for #4289. v7.0.45 (#4412) 2025-07-04 17:26:12 -04:00
Dockerfile.cov Asan: Refine asan warning message for macOS. 2022-12-31 21:20:51 +08:00
Dockerfile.pkg Merge branch v5.0.103 into develop 2022-12-03 21:15:22 +08:00
Dockerfile.test NEW PROTOCOL: Support viewing stream over RTSP. v7.0.47 (#4333) 2025-07-11 08:18:40 -04:00