gstreamer/subprojects/gst-editing-services
Alicia Boya García bcf95cc087 tests: nle: Call ges_init() only inside test cases
Some NLE tests were calling ges_init() from the test suite
initialization function. This was causing them to deadlock when running
with glib 2.76.3.

ges_init() causes a GThreadPool to be initialized. Even if GES at this
point doesn't request any thread to be created, since glib 2.63.4+
(see 8aeca4fa64)
the first time a GThreadPool is initialized a "pool-spawner" thread is
created, which is later used by g_thread_pool_push().

The default behavior of the GStreamer check tests is to fork for every
test case. This is not safe if any thread has been created at this
point. In this particular case, GThreadPool preserves the state that
says a "pool-spawner" thread has been created, and will have access to
its mutex and condition variable, but their queues will have different
contents as the memory has been forked. In consequence, calls to
g_thread_pool_push() will deadlock.

The deadlock will not occur if running the tests with CK_FORK=no.

This patch modifies the affected tests to only call ges_init() from
inside the test cases, fixing the deadlock.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4915>
2023-06-22 18:04:24 +00:00
..
bindings/python meson: Use python module to install override files 2023-02-16 19:43:11 +00:00
data/completions Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
docs doc: Avoid shelling out to hotdoc to generate plugins config files 2023-04-25 02:57:55 +00:00
examples gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
ges ges: discoverer-manager: Don't mark signals as action signals 2023-05-09 18:19:11 +00:00
plugins ges: nle: drop use of GSlice allocator 2023-02-03 17:48:09 +00:00
scripts meson: Generate ChangeLog files for release tarballs on dist 2022-12-04 18:16:25 +00:00
tests tests: nle: Call ges_init() only inside test cases 2023-06-22 18:04:24 +00:00
tools ges-launcher: add ignore EOS option 2023-06-07 15:03:30 +00:00
.gitignore Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
AUTHORS Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
COPYING Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
COPYING.LIB Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
gst-editing-services.doap Release 1.22.0 2023-01-23 19:41:07 +00:00
meson.build gstreamer-full: add full static support 2023-05-31 15:17:11 +00:00
meson_options.txt meson: Remove duplicate definition of 'examples' option 2021-10-12 22:54:56 +00:00
NEWS Release 1.22.0 2023-01-23 19:41:07 +00:00
README Move files from gst-editing-services into the "subprojects/gst-editing-services/" subdir 2021-09-24 16:15:30 -03:00
RELEASE Release 1.22.0 2023-01-23 19:41:07 +00:00

GStreamer Editing Services
--------------------------

 This is a high-level library for facilitating the creation of audio/video
non-linear editors.

License:
--------

  This package and its contents are licensend under the GNU Lesser General
Public License (LGPL).

Dependencies:
-------------

 * GStreamer core
 * gst-plugins-base