mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-01-10 19:25:26 +00:00
dc5ddd3022
In some rare cases, the webrtc-test entered a deadlock while executing `WebRTCSink::unprepare`. Attaching gdb to a blocked instance showed: * `gstrswebrtc::signaller:👿:Signaller::stop()` parked, waiting for a `Condvar` in `Signaller::stop()`. This was most likely awaiting for the receive task to complete while it was locked in `element.end_session()`. This code path is triggered from `unprepare` with the `State` `Mutex` locked. * `webrtcsink:👿:WebRtcSink::process_stats` waiting for a contended `Mutex`, which is also the `State` `Mutex`. This prevented completion of the signal `gst_webrtc_bin_get_stats`. This commit aborts the task in charge of periodically collecting stats and ensures any remaining iteration completes before requesting the Signaller to stop. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1202> |
||
---|---|---|
.. | ||
aws | ||
hlssink3 | ||
ndi | ||
onvif | ||
raptorq | ||
reqwest | ||
rtp | ||
webrtc | ||
webrtchttp |