mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 02:30:35 +00:00
1206a60bac
There is a race-condition that can trigger the assertion in gst_bus_add_signal_watch_full(): If gst_bus_add_signal_watch_full() is called immediately after gst_bus_remove_signal_watch() then bus->priv->signal_watch may still be set because gst_bus_source_dispose() or gst_bus_source_finalize() was not yet called. This happens if the corresponding GMainContext has the source queued for dispatch. In this case, the following dispatch will only unref and delete the signal_watch because it was already destroyed. Any pending messages will remain until a new watch is installed. So bus->priv->signal_watch can be cleared immediately when the watch is removed. This avoid the race condition. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/543> |
||
---|---|---|
.. | ||
elements | ||
generic | ||
gst | ||
libs | ||
pipelines | ||
tools | ||
gstreamer.supp | ||
meson.build |