mariadb/libmysql
Staale Smedseng 983770aa6a Bug #45058 init_available_charsets uses double checked locking
As documented in the bug report, the double checked locking
pattern has inherent issues, and cannot guarantee correct
initialization.

This patch replaces the logic in init_available_charsets()
with the use of pthread_once(3). A wrapper function,
my_pthread_once(), is introduced and is used in lieu of direct
calls to init_available_charsets(). Related defines
MY_PTHREAD_ONCE_* are also introduced.

For the Windows platform, the implementation in lp:sysbench is
ported. For single-thread use, a simple define calls the
function and sets the pthread_once control variable.

Charset initialization is modified to use my_pthread_once().
2009-12-12 19:11:25 +01:00
..
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
acinclude.m4 Import changeset 2000-07-31 21:29:14 +02:00
client_settings.h Fix compile warnings. 2007-09-29 23:31:08 +04:00
CMakeLists.txt Merge a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-main 2008-02-08 12:13:33 +01:00
conf_to_src.c manually merged 2004-08-18 19:57:55 +02:00
dll.c Bug#37226 Explicit call of my_thread_init() on Windows for every new thread. 2008-09-01 17:46:37 -04:00
errmsg.c Bug#27430 "Crash in subquery code when in PS and table DDL changed after 2008-05-20 20:36:26 +04:00
get_password.c fixes for build failures due to my yesterday's changeset forbidding 2008-02-19 18:45:11 +01:00
libmysql.c Bug #45058 init_available_charsets uses double checked locking 2009-12-12 19:11:25 +01:00
libmysql.def Post-merge fix for bug 41728: revert fix that was pushed in mistake to 5.1 and up. 2009-11-24 19:25:23 -02:00
libmysql.ver.in BUG#3074: Unversioned symbols in shared library 2006-01-17 18:51:08 +04:00
Makefile.am Bug #43397 mysql headers redefine pthread_mutex_init 2009-07-08 16:49:45 +02:00
Makefile.shared Auto-merge 2009-07-31 15:28:15 -04:00
manager.c Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00