diff options
author | Pascal Buhler <pascal.buhler@tandberg.com> | 2010-09-24 15:33:40 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2010-09-24 15:38:00 +0200 |
commit | ca6a512b5eef7434a2a09310317944b08323578b (patch) | |
tree | 522d1e82f1646c29d7527362389251d486685d6d /gst/rtpmanager/rtpsource.h | |
parent | 87a9d7f679b60af713ad9318125094a92fa487ab (diff) |
rtpbin: Make cleaning up sources in rtp_session_on_timeout MT safe
Using _foreach_remove on the hashtable, while releasing the lock protecting
that table inside the callback is not a good idea. The hashtable might
then change (a source removed or added) while signals like on_timeout
are being sent.
This solution makes a copy of the table, performs the _foreach without
actually removing any sources, but marks them for removal on a second
iteration with the real list, but this time not letting go of the lock.
Fixes #630452
Diffstat (limited to 'gst/rtpmanager/rtpsource.h')
-rw-r--r-- | gst/rtpmanager/rtpsource.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gst/rtpmanager/rtpsource.h b/gst/rtpmanager/rtpsource.h index 49c6528fc..54a86ac47 100644 --- a/gst/rtpmanager/rtpsource.h +++ b/gst/rtpmanager/rtpsource.h @@ -131,6 +131,7 @@ struct _RTPSource { gboolean internal; gboolean is_csrc; gboolean is_sender; + gboolean closing; GstStructure *sdes; |