From: Wim Taymans Date: Fri, 17 Apr 2009 14:16:29 +0000 (+0200) Subject: rtpsession: join the RTCP thread X-Git-Tag: 1.19.3~509^2~9824 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d45d18c735065ef13de3b7d55b1e4799f808e81d;p=platform%2Fupstream%2Fgstreamer.git rtpsession: join the RTCP thread Avoid a case where a joinable thread would be left unjoined, which leaked the thread structure. Fixes #577318. --- diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c index e2a6927..035d82a 100644 --- a/gst/rtpmanager/gstrtpsession.c +++ b/gst/rtpmanager/gstrtpsession.c @@ -967,6 +967,11 @@ start_rtcp_thread (GstRtpSession * rtpsession) GST_RTP_SESSION_LOCK (rtpsession); rtpsession->priv->stop_thread = FALSE; 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 * just reuse the currently running one. */ rtpsession->priv->thread =