summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorVladislav Vaintroub <vvaintroub@mysql.com>2008-09-01 20:04:17 +0200
committerVladislav Vaintroub <vvaintroub@mysql.com>2008-09-01 20:04:17 +0200
commit51bd4415cced1887cf23b99c935cadf601b8f638 (patch)
tree9b0f38c216ebe7322054a6a889aae5f96312f13f /extra
parent7fb01cbf018f8a578ce1e2a40c4d51b10e78434b (diff)
downloadmariadb-git-51bd4415cced1887cf23b99c935cadf601b8f638.tar.gz
Bug#37226 Explicit call of my_thread_init() on Windows for every new thread.
Bug#33031 app linked to libmysql.lib crash if run as service in vista under localsystem There are some problems using DllMain hook functions on Windows that automatically do global and per-thread initialization for libmysqld.dll 1)per-thread initialization(DLL_THREAD_ATTACH) MySQL internally counts number of active threads that and causes a delay in in my_end() if not all threads are exited. But,there are threads that can be started either by Windows internally (often in TCP/IP scenarios) or by user himself - those threads are not necessarily using libmysql.dll functionality, but nonetheless the contribute to the count of open threads. 2)process-initialization (DLL_PROCESS_ATTACH) my_init() calls WSAStartup that itself loads DLLs and can lead to a deadlock in Windows loader. Fix is to remove dll initialization code from libmysql.dll in general case. I still leave an environment variable LIBMYSQL_DLLINIT, which if set to any value will cause the old behavior (DLL init hooks will be called). This env.variable exists only to prevent breakage of existing Windows-only applications that don't do mysql_thread_init() and work ok today. Use of LIBMYSQL_DLLINIT is discouraged and it will be removed in 6.0
Diffstat (limited to 'extra')
0 files changed, 0 insertions, 0 deletions