gstreamer/gst
Edward Hervey 31e6d766ff gst: Delay creation of threadpools
Since glib 2.64, gthreadpool will start waiting on a GCond immediately upon
creation. This can cause issues if we fork *before* actually using the
threadpool since we will then be signalling that GCond ... from another process
and that will never work.

Instead, delay creationg of thread pools until the very first time we need
them. This introduces a minor (un-noticeable) delay when needing a new thread
but fixes the issues for all users of GSTreamer that will call gst_init, then
fork and actually start pipelines.

See https://gitlab.gnome.org/GNOME/glib/-/issues/2131 for more context.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/531>
2020-06-16 08:23:21 +02:00
..
parse Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
printf Remove autotools build system 2019-10-13 16:10:42 +01:00
gettext.h Fix FSF address 2012-11-03 20:44:48 +00:00
glib-compat-private.h Fix FSF address 2012-11-03 20:44:48 +00:00
glib-compat.c Whenever we include windows.h, also define WIN32_LEAN_AND_MEAN 2016-02-20 10:07:42 +00:00
glib-compat.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gst-i18n-app.h Fix FSF address 2012-11-03 20:44:48 +00:00
gst-i18n-lib.h Fix FSF address 2012-11-03 20:44:48 +00:00
gst.c pluginfeature: Allow updating initial rank of plugin feature 2019-12-26 19:49:00 +00:00
gst.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gst_private.h gst_private.h: increse padding in struct _GstClockEntryImpl 2020-06-08 22:48:55 +02:00
gstallocator.c Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:49:14 +02:00
gstallocator.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstatomicqueue.c introspection: add missing (nullable) annotations to return values 2014-06-26 18:56:38 +02:00
gstatomicqueue.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstbin.c gstbin: Remove mentions of duration caching 2020-05-18 15:37:20 +02:00
gstbin.h bin: Add method to find elements by factory name 2019-12-20 14:29:19 +01:00
gstbuffer.c GstBuffer: size-related optimization 2019-11-27 14:25:19 +00:00
gstbuffer.h gstbuffer: update documentation 2019-11-18 00:15:31 +00:00
gstbufferlist.c bufferlist: foreach: always remove as parent if buffer is changed 2020-03-18 14:43:08 +01:00
gstbufferlist.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstbufferpool.c bufferpool: unblock acquire thread when we discard buffer 2020-05-14 07:04:02 +00:00
gstbufferpool.h gst: Fix various Since markers 2019-04-23 15:08:18 +03:00
gstbus.c bus: Make setting/replacing/clearing the sync handler thread-safe 2020-02-14 14:41:46 +00:00
gstbus.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcaps.c gstcaps: Move assignment outside loop 2020-05-05 10:17:49 +00:00
gstcaps.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcapsfeatures.c doc: Add some missing docstrings 2019-05-13 11:33:49 -04:00
gstcapsfeatures.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstchildproxy.c Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
gstchildproxy.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstclock.c gst/systemclock: wait on each entry individually 2020-04-16 01:26:59 +00:00
gstclock.h clock: remove documentation link on GTimeVal 2020-03-12 05:02:33 +00:00
gstcompat.h Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gstconfig.h.in gstconfig.h.in: Windows ARM64 does not allow unaligned access 2019-06-28 13:01:14 +05:30
gstcontext.c gst: Add poisoning to more types 2018-08-03 14:31:34 +03:00
gstcontext.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcontrolbinding.c documentation: fix a number of typos 2019-10-06 11:12:11 -04:00
gstcontrolbinding.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstcontrolsource.c gst: Don't ref_sink() GstObject subclasses in instance_init/constructor 2017-05-17 10:40:37 +03:00
gstcontrolsource.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdatetime.c gstdatetime: Add missing NULL check to gst_date_time_new_local_time 2020-03-22 14:00:41 +00:00
gstdatetime.h datetime: Add constructor for timestamps in microseconds 2019-11-25 13:31:11 +01:00
gstdebugutils.c debugutils: Skip multiqueue stats in dot dump 2020-04-21 19:53:33 +00:00
gstdebugutils.h debugutils: Make sure that GST_DEBUG_GRAPH_SHOW_VERBOSE gets the correct value in introspection 2018-11-10 19:08:52 +00:00
gstdevice.c device, elementfactory: relax floating requirement 2019-12-10 13:31:50 +01:00
gstdevice.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdevicemonitor.c documentation: fix a number of typos 2019-10-06 11:12:11 -04:00
gstdevicemonitor.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdeviceprovider.c documentation: fix a number of typos 2019-10-06 11:12:11 -04:00
gstdeviceprovider.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdeviceproviderfactory.c Don't use deprecated g_object_newv() 2017-04-08 09:49:59 +01:00
gstdeviceproviderfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstdynamictypefactory.c doc: Fix and add some missing docstrings 2019-05-13 11:33:49 -04:00
gstdynamictypefactory.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstelement.c gst: Delay creation of threadpools 2020-06-16 08:23:21 +02:00
gstelement.h element: Added gst_element_get_current_clock_time and gst_element_get_current_running_time 2019-08-12 12:59:27 +03:00
gstelementfactory.c device, elementfactory: relax floating requirement 2019-12-10 13:31:50 +01:00
gstelementfactory.h elementfactory: add GST_ELEMENT_FACTORY_TYPE_HARDWARE 2019-11-02 15:11:12 +01:00
gstelementmetadata.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gsterror.c doc: remove xml from comments 2019-05-29 21:33:42 +02:00
gsterror.h doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gstevent.c gstevent: Add function for checking event name by GQuark 2020-05-04 12:26:10 +00:00
gstevent.h gstevent: Add function for checking event name by GQuark 2020-05-04 12:26:10 +00:00
gstformat.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gstformat.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstghostpad.c Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:49:14 +02:00
gstghostpad.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstinfo.c gstinfo: Add new API for getting debug log lines 2019-12-25 08:50:17 +05:30
gstinfo.h gstinfo: Check threshold for category from macro 2020-03-24 11:39:32 +00:00
gstiterator.c Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
gstiterator.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstmacros.h gstmacros.h: Fix restrict definition on MSVC 2019-02-20 17:51:40 +05:30
gstmemory.c Fixing various typos 2019-06-20 15:20:27 +00:00
gstmemory.h Fixing various typos 2019-06-20 15:20:27 +00:00
gstmessage.c event/message: Don't allow setting invalid group ids 2020-01-24 17:53:30 +02:00
gstmessage.h docs: Document the new 'redirect-location' error message detail field 2020-01-06 17:47:40 -03:00
gstmeta.c gstmeta: Optimize get_tags() by using private quark table 2019-06-17 09:50:32 +02:00
gstmeta.h buffer: store sequence number for metas 2019-02-12 17:53:08 +00:00
gstminiobject.c miniobject: free qdata array when the last qdata is removed 2019-09-04 16:31:53 +02:00
gstminiobject.h gst: Fix various Since markers 2019-04-23 15:08:18 +03:00
gstobject.c gstobject: Don't double-notify when setting names 2020-04-17 09:26:45 +02:00
gstobject.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpad.c gstpad: Simplify task name creation 2020-05-04 12:26:10 +00:00
gstpad.h pad: Added gst_pad_get_single_internal_link 2019-09-05 11:49:18 +03:00
gstpadtemplate.c padtemplate: Directly unreference the documentation caps 2020-06-06 08:25:16 +02:00
gstpadtemplate.h padtemplate: expose getters and setters "documentation caps" 2020-06-06 00:38:29 +02:00
gstparamspecs.c gst: Fix up a bunch of GIR annotations 2018-01-27 10:41:24 +00:00
gstparamspecs.h paramspecs: add 'Since: 1.18' markers for new param spec flags 2020-06-08 16:04:51 +01:00
gstparse.c docs: mention gst_parse_bin_from_description() in gst_parse_launch() docs 2019-11-27 09:41:36 +00:00
gstparse.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpipeline.c pipeline: fix base_time selection when flush seeking live 2020-04-09 15:41:36 +00:00
gstpipeline.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstplugin.c plugin: Fix typo with GStremaer version: 2020-05-04 20:20:17 +00:00
gstplugin.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpluginfeature.c pluginfeature: Allow updating initial rank of plugin feature 2019-12-26 19:49:00 +00:00
gstpluginfeature.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstpluginloader.c pluginloader: handle fsync interrupted by signal (EINTR) 2019-12-12 20:49:36 +01:00
gstpluginloader.h Headers: add missing includes. 2015-08-15 13:17:07 +02:00
gstpoll.c Port to hotdoc 2019-05-13 16:34:09 -04:00
gstpoll.h poll: add API to watch for POLLPRI 2018-06-08 11:53:55 -04:00
gstpreset.c Use gst_object_unref() / gst_object_clear() instead of the GObject ones 2020-04-20 16:28:52 +00:00
gstpreset.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gstpromise.c promise: update documentation and annotations for NULL replies 2020-05-28 10:23:51 +00:00
gstpromise.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstprotection.c protection: Release decryptors list, even if it's empty 2018-06-25 16:38:13 +01:00
gstprotection.h doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gstquark.c utils: expose GstPluginAPIFlags 2020-06-06 00:38:29 +02:00
gstquark.h utils: expose GstPluginAPIFlags 2020-06-06 00:38:29 +02:00
gstquery.c query: add a new bitrate query 2018-11-07 15:04:14 +00:00
gstquery.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstregistry.c gstregistry: Directly get list of plugin features 2020-05-05 10:50:05 +02:00
gstregistry.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstregistrybinary.c registrybinary: Also call fclose() if fflush()/fsync() failed 2020-05-06 07:33:42 +00:00
gstregistrybinary.h tracer: initial prototype for the tracing subsystem 2015-10-05 20:59:39 +02:00
gstregistrychunks.c gstregistry: Directly get list of plugin features 2020-05-05 10:50:05 +02:00
gstregistrychunks.h dynamic types: Implement dynamic types in the registry 2016-11-02 11:21:37 +11:00
gstsample.c gst: Add poisoning to more types 2018-08-03 14:31:34 +03:00
gstsample.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstsegment.c gstsegment: Refuse instant-rate seeks in gst_segment_do_seek() 2020-03-26 13:51:41 +00:00
gstsegment.h segment: Enhance the GstSegment structure documentation 2020-05-05 20:52:11 +00:00
gststreamcollection.c Don't pass default GLib marshallers for signals 2019-09-09 12:16:24 +00:00
gststreamcollection.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gststreams.c Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:49:14 +02:00
gststreams.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gststructure.c structure: Quickly document serialization format 2020-06-05 11:01:43 +00:00
gststructure.h structure: add gst_structure_take 2019-11-14 10:08:38 +00:00
gstsystemclock.c systemclock: Only try initializing entries if they were not initialized before 2020-05-27 12:15:34 +00:00
gstsystemclock.h Add missing colons to Since markers in the docs 2020-05-01 10:07:09 +03:00
gsttaglist.c taglist: Fix crash when comparing two lists of the same length but with different items 2020-05-08 11:04:14 +03:00
gsttaglist.h taglist: Fix broken empty set character in code 2019-11-03 19:06:58 +00:00
gsttagsetter.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gsttagsetter.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gsttask.c gst: Delay creation of threadpools 2020-06-16 08:23:21 +02:00
gsttask.h task: Introduce gst_task_resume() API 2020-04-01 15:13:59 +00:00
gsttaskpool.c gsttaskpool: Do not block tasks while cleaning up the taskpool 2019-03-08 17:27:30 +01:00
gsttaskpool.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttoc.c gst: Add poisoning to more types 2018-08-03 14:31:34 +03:00
gsttoc.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttocsetter.c Port gtk-doc comments to their equivalent markdown syntax 2017-01-27 16:36:38 -03:00
gsttocsetter.h gst: GST_EXPORT -> GST_API 2018-03-13 00:45:35 +00:00
gsttracer.c Update for g_type_class_add_private() deprecation in recent GLib 2018-06-24 12:49:14 +02:00
gsttracer.h gsttracer: Add new API to fetch the list of active tracers 2019-07-02 15:13:26 +05:30
gsttracerfactory.c docs: include tracers in the documentation 2017-12-14 14:46:46 +11:00
gsttracerfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttracerrecord.c tracerrecord: Be stricter while parsing record templates 2019-07-01 13:33:13 +00:00
gsttracerrecord.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsttracerutils.c gsttracerutils: Fix build with disabled tracer hooks. 2019-07-07 20:42:56 +10:00
gsttracerutils.h gst: Documentation fixes 2018-04-02 12:42:30 +02:00
gsttypefind.c Don't use deprecated g_object_newv() 2017-04-08 09:49:59 +01:00
gsttypefind.h doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gsttypefindfactory.c Fix typos in comments and docs 2018-05-01 11:18:03 +01:00
gsttypefindfactory.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gsturi.c doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00
gsturi.h Use G_DEFINE_AUTOPTR_CLEANUP_FUNC unconditionally 2019-06-04 08:50:59 +02:00
gstutils.c utils: fix markdown link to #GstPluginAPIFlags 2020-06-06 01:10:09 +02:00
gstutils.h utils: expose GstPluginAPIFlags 2020-06-06 00:38:29 +02:00
gstvalue.c value: Fix comparison of int/int64 ranges 2020-05-25 08:29:21 +02:00
gstvalue.h doc: document fundamental types 2020-06-04 15:49:25 -04:00
gstversion.h.in gstversion: Add missing include in .in file. 2015-08-15 13:26:12 +02:00
math-compat.h Fix FSF address 2012-11-03 20:44:48 +00:00
meson.build doc: Fix hotdoc warnings 2019-05-13 16:34:09 -04:00