mirror of
https://github.com/MariaDB/server.git
synced 2026-05-02 13:15:32 +02:00
Define USE_TLS when compiling libmysql.dll, to avoid crashing when
loaded at runtime. extra/comp_err.c: Don't use DBUG after my_end, crashes on Windows with USE_TLS. include/my_dbug.h: Add missing DBUG_LEAVE in non-debug builds. include/my_pthread.h: Add comment explaining USE_TLS. libmysql/cmakelists.txt: Add USE_TLS to avoid crashing when loading libmysql.dll at runtime. mysys/cmakelists.txt: Add USE_TLS to avoid crashing when loading libmysql.dll at runtime. mysys/my_init.c: Don't use DBUG after my_thread_end(), as it crashes on Windows TLS.
This commit is contained in:
parent
c8caeebf85
commit
e29144b4b5
6 changed files with 23 additions and 7 deletions
|
|
@ -116,6 +116,13 @@ void pthread_exit(void *a); /* was #define pthread_exit(A) ExitThread(A)*/
|
|||
#define _REENTRANT 1
|
||||
#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
|
||||
|
||||
/*
|
||||
Windows has two ways to use thread local storage. The most efficient
|
||||
is using __declspec(thread), but that does not work properly when
|
||||
used in a .dll that is loaded at runtime, after program load. So for
|
||||
libmysql.dll and libmysqld.dll we define USE_TLS in order to use the
|
||||
TlsXxx() API instead, which works in all cases.
|
||||
*/
|
||||
#ifdef USE_TLS /* For LIBMYSQL.DLL */
|
||||
#undef SAFE_MUTEX /* This will cause conflicts */
|
||||
#define pthread_key(T,V) DWORD V
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue