}
static void
-test_count_threads_foreach (GThread *thread,
- guint *count)
-{
- ++*count;
-}
-
-static guint
-test_count_threads (void)
-{
- guint count = 0;
-
- g_thread_foreach ((GFunc) test_count_threads_foreach, &count);
-
- /* Exclude main thread */
- return count - 1;
-}
-
-static void
test_thread_stop_unused (void)
{
GThreadPool *pool;
/* Wait for the threads to migrate. */
g_usleep (G_USEC_PER_SEC);
- DEBUG_MSG (("[unused] current threads %d",
- test_count_threads()));
-
DEBUG_MSG (("[unused] stopping unused threads"));
g_thread_pool_stop_unused_threads ();
for (i = 0; i < 5; i++)
{
- if (g_thread_pool_get_num_unused_threads () == 0 &&
- test_count_threads () == 0)
+ if (g_thread_pool_get_num_unused_threads () == 0)
break;
DEBUG_MSG (("[unused] waiting ONE second for threads to die"));
g_usleep (G_USEC_PER_SEC);
}
- DEBUG_MSG (("[unused] stopped idle threads, %d remain, %d threads still exist",
- g_thread_pool_get_num_unused_threads (),
- test_count_threads ()));
+ DEBUG_MSG (("[unused] stopped idle threads, %d remain",
+ g_thread_pool_get_num_unused_threads ()));
- g_assert (g_thread_pool_get_num_unused_threads () == test_count_threads ());
g_assert (g_thread_pool_get_num_unused_threads () == 0);
g_thread_pool_set_max_unused_threads (MAX_THREADS);