gstreamer/tests
Michael Olbrich 1206a60bac bus: clear bus->priv->signal_watch immediately when the source is removed
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>
2020-06-24 15:08:59 +02:00
..
benchmarks Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
check bus: clear bus->priv->signal_watch immediately when the source is removed 2020-06-24 15:08:59 +02:00
examples Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
misc tests: Maintain compatibility with GLib 2.48 2020-02-26 19:22:32 +00:00
validate tests:validate: Whitelist validate plugins 2020-05-28 14:56:26 -04:00
meson.build tests: Add a gst-tester utility 2020-05-19 13:14:46 +00:00
README README: update after removal of "old" dir. 2010-07-05 12:26:42 +03:00

This directory contains regression tests, functionality tests, examples,
benchmarks, ...

benchmarks/
   benchmarks to profile pieces of GStreamer
check/
   unit tests using the check library, non-interactive
examples/
   small examples demonstrating the use of various features
misc/
   prototypes, random bits, ...