1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03: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:
unknown
2006-03-22 09:55:26 +01:00
parent c8caeebf85
commit e29144b4b5
6 changed files with 23 additions and 7 deletions

View File

@@ -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