diff options
Diffstat (limited to 'sql/threadpool_generic.cc')
-rw-r--r-- | sql/threadpool_generic.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/threadpool_generic.cc b/sql/threadpool_generic.cc index 7895431bc13..709bb95eb98 100644 --- a/sql/threadpool_generic.cc +++ b/sql/threadpool_generic.cc @@ -1009,7 +1009,10 @@ void thread_group_destroy(thread_group_t *thread_group) #endif if (!--shutdown_group_count) + { my_free(all_groups); + all_groups= 0; + } } /** @@ -1614,6 +1617,14 @@ TP_pool_generic::~TP_pool_generic() { thread_group_close(&all_groups[i]); } + + /* + Wait until memory occupied by all_groups is freed. + */ + int timeout_ms=5000; + while(all_groups && timeout_ms--) + my_sleep(1000); + threadpool_started= false; DBUG_VOID_RETURN; } |