mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-09-02 17:53:48 +00:00
webrtc: sink: avoid recursive locking of the session
Drop the session lock before calling end_session and finalize session if the consumer refuses the media or the provided payload in not valid Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/2322>
This commit is contained in:
parent
77e45a6f00
commit
ab50ef2fb7
1 changed files with 3 additions and 0 deletions
|
@ -3835,6 +3835,8 @@ impl BaseWebRTCSink {
|
||||||
media_idx,
|
media_idx,
|
||||||
media_str
|
media_str
|
||||||
);
|
);
|
||||||
|
|
||||||
|
drop(session);
|
||||||
if let Some(_session) = state.end_session(&self.obj(), session_id) {
|
if let Some(_session) = state.end_session(&self.obj(), session_id) {
|
||||||
drop(state);
|
drop(state);
|
||||||
let settings = self.settings.lock().unwrap();
|
let settings = self.settings.lock().unwrap();
|
||||||
|
@ -3862,6 +3864,7 @@ impl BaseWebRTCSink {
|
||||||
session_id,
|
session_id,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
drop(session);
|
||||||
if let Some(_session) = state.end_session(&self.obj(), session_id) {
|
if let Some(_session) = state.end_session(&self.obj(), session_id) {
|
||||||
drop(state);
|
drop(state);
|
||||||
let settings = self.settings.lock().unwrap();
|
let settings = self.settings.lock().unwrap();
|
||||||
|
|
Loading…
Reference in a new issue