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:
Wim Taymans 2009-04-17 16:16:29 +02:00
parent 63044be8e5
commit 71076cad54

View file

@ -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 =