From 64855733d7e8fd60c5b279668b2cc48a3f121a83 Mon Sep 17 00:00:00 2001 From: Sebastian Wilhelmi Date: Sat, 13 Apr 2002 10:08:31 +0000 Subject: [PATCH] Unlock the pool for all threads leaving it. (#78348) 2002-04-13 Sebastian Wilhelmi * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool for all threads leaving it. (#78348) --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-12 | 5 +++++ ChangeLog.pre-2-2 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ glib/gthreadpool.c | 9 +++++---- 8 files changed, 40 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6c0ddfc..b953800 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 6c0ddfc..b953800 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2002-04-13 Sebastian Wilhelmi + + * glib/gthreadpool.c (g_thread_pool_thread_proxy): Unlock the pool + for all threads leaving it. (#78348) + 2002-04-11 Matthias Clasen * tests/patterntest.c: Remove manual UTF-8 -> Latin1 conversion for diff --git a/glib/gthreadpool.c b/glib/gthreadpool.c index 020a119..25a9cd0 100644 --- a/glib/gthreadpool.c +++ b/glib/gthreadpool.c @@ -134,10 +134,9 @@ g_thread_pool_thread_proxy (gpointer data) watcher = TRUE; } - if (goto_global_pool) { - pool->num_threads--; + pool->num_threads--; if (!pool->running && !pool->waiting) { @@ -146,9 +145,11 @@ g_thread_pool_thread_proxy (gpointer data) g_async_queue_unlock (pool->queue); g_thread_pool_free_internal (pool); } - else if (len == - pool->num_threads) + else { - g_thread_pool_wakeup_and_stop_all (pool); + if (len == - pool->num_threads) + g_thread_pool_wakeup_and_stop_all (pool); + g_async_queue_unlock (pool->queue); } } -- 2.7.4