From 807f65d4bde3957a28bf711c2df6d3228a0e4b96 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Feb 03 2020 10:13:07 +0000 Subject: Update to 2.63.5 --- diff --git a/0001-Fix-initialization-logic-of-GThreadPool-if-the-first.patch b/0001-Fix-initialization-logic-of-GThreadPool-if-the-first.patch deleted file mode 100644 index 568ac7b..0000000 --- a/0001-Fix-initialization-logic-of-GThreadPool-if-the-first.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 78bae85d215e3e1ce77c828c2075d216edbc36f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= -Date: Sat, 25 Jan 2020 11:08:22 +0200 -Subject: [PATCH] Fix initialization logic of GThreadPool if the first created - pool is an exclusive one - -Previously we would only ever run the initialization code once, but part -of it only if a non-exclusive pool was created. This caused the shared -state to be inconsistent if the first pool to be created was exclusive -and the second non-exclusive. - -Fixes https://gitlab.gnome.org/GNOME/glib/issues/2012 ---- - glib/gthreadpool.c | 67 +++++++++++++++++++++++----------------------- - 1 file changed, 33 insertions(+), 34 deletions(-) - -diff --git a/glib/gthreadpool.c b/glib/gthreadpool.c -index dd6546be4568c7b819145d8cbc6654c9c182f767..ed34fcd525b63937636ae31b1461af8341e578e5 100644 ---- a/glib/gthreadpool.c -+++ b/glib/gthreadpool.c -@@ -579,42 +579,41 @@ g_thread_pool_new (GFunc func, - - G_LOCK (init); - if (!unused_thread_queue) -- { - unused_thread_queue = g_async_queue_new (); -- /* For the very first non-exclusive thread-pool we remember the thread -- * scheduler settings of the thread creating the pool, if supported by -- * the GThread implementation. This is then used for making sure that -- * all threads created on the non-exclusive thread-pool have the same -- * scheduler settings, and more importantly don't just inherit them -- * from the thread that just happened to push a new task and caused -- * a new thread to be created. -- * -- * Not doing so could cause real-time priority threads or otherwise -- * threads with problematic scheduler settings to be part of the -- * non-exclusive thread-pools. -- * -- * If this is not supported by the GThread implementation then we here -- * start a thread that will inherit the scheduler settings from this -- * very thread and whose only purpose is to spawn new threads with the -- * same settings for use by the non-exclusive thread-pools. -- * -- * -- * For non-exclusive thread-pools this is not required as all threads -- * are created immediately below and are running forever, so they will -- * automatically inherit the scheduler settings from this very thread. -- */ -- if (!exclusive) -+ -+ /* For the very first non-exclusive thread-pool we remember the thread -+ * scheduler settings of the thread creating the pool, if supported by -+ * the GThread implementation. This is then used for making sure that -+ * all threads created on the non-exclusive thread-pool have the same -+ * scheduler settings, and more importantly don't just inherit them -+ * from the thread that just happened to push a new task and caused -+ * a new thread to be created. -+ * -+ * Not doing so could cause real-time priority threads or otherwise -+ * threads with problematic scheduler settings to be part of the -+ * non-exclusive thread-pools. -+ * -+ * If this is not supported by the GThread implementation then we here -+ * start a thread that will inherit the scheduler settings from this -+ * very thread and whose only purpose is to spawn new threads with the -+ * same settings for use by the non-exclusive thread-pools. -+ * -+ * -+ * For non-exclusive thread-pools this is not required as all threads -+ * are created immediately below and are running forever, so they will -+ * automatically inherit the scheduler settings from this very thread. -+ */ -+ if (!exclusive && !have_shared_thread_scheduler_settings && !spawn_thread_queue) -+ { -+ if (g_thread_get_scheduler_settings (&shared_thread_scheduler_settings)) - { -- if (g_thread_get_scheduler_settings (&shared_thread_scheduler_settings)) -- { -- have_shared_thread_scheduler_settings = TRUE; -- } -- else -- { -- spawn_thread_queue = g_async_queue_new (); -- g_cond_init (&spawn_thread_cond); -- g_thread_new ("pool-spawner", g_thread_pool_spawn_thread, NULL); -- } -+ have_shared_thread_scheduler_settings = TRUE; -+ } -+ else -+ { -+ spawn_thread_queue = g_async_queue_new (); -+ g_cond_init (&spawn_thread_cond); -+ g_thread_new ("pool-spawner", g_thread_pool_spawn_thread, NULL); - } - } - G_UNLOCK (init); --- -2.24.1 - diff --git a/glib2.spec b/glib2.spec index 1554154..7efd7c2 100644 --- a/glib2.spec +++ b/glib2.spec @@ -1,8 +1,8 @@ %global _changelog_trimtime %(date +%s -d "1 year ago") Name: glib2 -Version: 2.63.4 -Release: 3%{?dist} +Version: 2.63.5 +Release: 1%{?dist} Summary: A library of handy utility functions License: LGPLv2+ @@ -35,11 +35,6 @@ Recommends: shared-mime-info # glib 2.59.0 hash table changes broke older gcr versions / password prompts in gnome-shell Conflicts: gcr < 3.28.1 -# Patches from upstream - -# Fix for https://gitlab.gnome.org/GNOME/glib/issues/2012 -Patch0001: 0001-Fix-initialization-logic-of-GThreadPool-if-the-first.patch - %description GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, @@ -221,6 +216,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_datadir}/installed-tests %changelog +* Mon Feb 03 2020 Kalev Lember - 2.63.5-1 +- Update to 2.63.5 + * Wed Jan 29 2020 Stephen Gallagher - 2.63.4-3 - Fix GThreadPool initialization that is breaking createrepo_c (BZ #1795052) diff --git a/sources b/sources index 7a8946c..c1fb1c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (glib-2.63.4.tar.xz) = 3198b1a15f45cc5e5db077fd8a42acac5762806f07c2782abfb873f754f28da7b5fa384a61a5d10c651ae37fdd9d300e7f40e84496e12069f81f7deb174dc4a6 +SHA512 (glib-2.63.5.tar.xz) = fdfb98fafcf7b98d4dd56fdc3fc78c83ad5ac21ef69dba16cded58b0ee75873f4d6c699be0d57f915225246dd45b48ef46a3399a68e956e66a91656061450d5e