• Vladislav Vaintroub's avatar
    Bug#38522: 5 seconds delay when closing application using embedded server · 8f500c52
    Vladislav Vaintroub authored
                      
    The problem here is that embedded server starts handle_thread manager 
    thread  on mysql_library_init() does not stop it on mysql_library_end().
    At shutdown, my_thread_global_end() waits for thread count to become 0,
    but since we did not stop the thread it will give up after 5 seconds.
                 
    Solution is to move shutdown for handle_manager thread from kill_server()
    (mysqld specific) to clean_up() that is used by both embedded and mysqld.
                
    This patch also contains some refactorings - to avoid duplicate code,
    start_handle_manager() and stop_handle_manager() functions are introduced.
    Unused variables are eliminated. handle_manager does not rely on global
    variable abort_loop anymore to stop (abort_loop is not set for embedded).
                
    Note: Specifically on Windows and when using DBUG version of libmysqld, 
    the complete solution requires removing obsolete code my_thread_init() 
    from my_thread_va...
    8f500c52
mysqld.cc 310 KB