mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 17:20:36 +00:00
rtpsession: join the RTCP thread
Avoid a case where a joinable thread would be left unjoined, which leaked the thread structure. Fixes #577318.
This commit is contained in:
parent
63044be8e5
commit
71076cad54
1 changed files with 5 additions and 0 deletions
|
@ -967,6 +967,11 @@ start_rtcp_thread (GstRtpSession * rtpsession)
|
||||||
GST_RTP_SESSION_LOCK (rtpsession);
|
GST_RTP_SESSION_LOCK (rtpsession);
|
||||||
rtpsession->priv->stop_thread = FALSE;
|
rtpsession->priv->stop_thread = FALSE;
|
||||||
if (rtpsession->priv->thread_stopped) {
|
if (rtpsession->priv->thread_stopped) {
|
||||||
|
/* if the thread stopped, and we still have a handle to the thread, join it
|
||||||
|
* now. We can safely join with the lock held, the thread will not take it
|
||||||
|
* anymore. */
|
||||||
|
if (rtpsession->priv->thread)
|
||||||
|
g_thread_join (rtpsession->priv->thread);
|
||||||
/* only create a new thread if the old one was stopped. Otherwise we can
|
/* only create a new thread if the old one was stopped. Otherwise we can
|
||||||
* just reuse the currently running one. */
|
* just reuse the currently running one. */
|
||||||
rtpsession->priv->thread =
|
rtpsession->priv->thread =
|
||||||
|
|
Loading…
Reference in a new issue