mariadb/libmysqld
Vladislav Vaintroub 4dfbf2ec93 Bug#38522: 5 seconds delay when closing application using embedded server
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_var(). This has a side effect that a DBUG statement 
after my_thread_end() can cause thread counter to be incremented, and 
embedded will hang for some seconds. Or worse, my_thread_init() will 
crash if critical sections have been deleted by the global cleanup 
routine that runs in a different thread. 

This patch also fixes and revert prior changes for Bug#38293 
"Libmysqld crash in mysql_library_init if language file missing".

Root cause of the crash observed in Bug#38293  was bug in my_thread_init() 
described above
2008-12-04 19:41:53 +01:00
..
examples Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
CMakeLists.txt Bug#37003 Tests sporadically crashes with embedded server 2008-06-18 13:17:15 -03:00
copyright Added all changes from old 4.0 version: 2001-04-11 13:04:03 +02:00
emb_qcache.cc Fixed build warning on Windows (emb_qcache.cc) 2008-07-10 14:41:56 -06:00
emb_qcache.h Merge station.:/mnt/raid/alik/MySQL/devel/5.1 2007-12-14 16:30:22 +03:00
embedded_priv.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
lib_sql.cc Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
libmysqld.c Bug#34655 Compile error 2008-02-28 14:55:46 -03:00
libmysqld.def Bug#38522: 5 seconds delay when closing application using embedded server 2008-12-04 19:41:53 +01:00
libmysqld.rc query_id and my_xid -> ulonglong 2005-01-27 22:38:56 +01:00
Makefile.am Bug#37003 Tests sporadically crashes with embedded server 2008-06-18 13:17:15 -03:00
resource.h query_id and my_xid -> ulonglong 2005-01-27 22:38:56 +01:00