Commit graph

21 commits

Author SHA1 Message Date
Vladislav Vaintroub
cd94452eda merge 2009-12-19 14:11:48 +01:00
Alexander Nozdrin
09942fe8e8 Manual merge from mysql-trunk-merge.
Conflicts:
  - include/my_no_pthread.h
  - mysql-test/r/sp-ucs2.result
  - sql/log.cc
  - sql/sql_acl.cc
  - sql/sql_yacc.yy
2009-12-16 21:02:21 +03:00
Alexey Kopytov
efe6195858 Manual merge of mysql-5.1-bugteam into mysql-trunk-merge. 2009-12-16 16:47:07 +03:00
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
Vladislav Vaintroub
aea6035c73 merge 2009-12-04 20:05:04 +00:00
Marc Alff
fa3cfa07dd WL#2360 Performance schema
Part 1: Instrumentation interface
2009-11-30 17:49:15 -07:00
Vladislav Vaintroub
13cd7170cc WL#5161 : Cross-platform build with CMake 2009-11-09 12:32:48 +01:00
Vladislav Vaintroub
9cf8d12c85 Backport of this changeset
http://lists.mysql.com/commits/59686

Cleanup pthread_self(), pthread_create(), pthread_join() implementation on Windows.
Prior implementation is was unnecessarily complicated and even differs in embedded
and non-embedded case.
      
Improvements in this patch:
* pthread_t is now the unique thread ID, instead of HANDLE returned by beginthread
      
This simplifies pthread_self() to be just straight GetCurrentThreadId().
prior it was much  art involved in passing the beginthread() handle from the caller
to the TLS structure in the child thread ( did not work for the main thread of
course)
      
* remove MySQL specific my_thread_init()/my_thread_end() from pthread_create.
No automagic is done on Unix on pthread_create(). Having the same on Windows will 
improve portability and avoid extra #ifdef's
      
* remove redefinition of getpid() - it was defined as GetCurrentThreadId()
2009-09-30 17:40:12 +02:00
Vladislav Vaintroub
e6090f10bb Windows improvements : manual backport of
htttp://lists.mysql.com/commits/50957?f=plain
      
Always use TLS functions instead of __declspec(thread) to access 
thread local storage variables.
The change removes the necessity to recomplile the same source
files twice -  with USE_TLS for DLLs and without USE_TLS for EXEs.
Real benefit of this change is better readability and maintainability
of TLS functions within MySQL.
              
There is a performance loss using TlsXXX functions compared to __declspec 
but the difference is negligible in practice. In a sysbench-like benchmark 
I ran with with TlsGetValue, pthread_[get|set]_specific was called 600000000 
times and took 0.17sec of total 35min CPU time, or 0.008%.
2009-09-30 03:22:57 +02:00
msvensson@pilot.mysql.com
18c6118911 Bug#30992 Wrong implementation of pthread_mutex_trylock()
It's not possible to use WaitForSingleObject to wait
on a CRITICAL_SECTION, instead use the TryEnterCriticalSection function.
 - if "mutex" was already taken => return EBUSY
 - if "mutex" was aquired => return 0
2007-10-03 21:38:32 +02:00
mats@kindahl-laptop.dnsalias.net
5dad55cd24 BUG#30992 (Wrong implementation of pthread_mutex_trylock()):
Adding support for correct handling of pthread_mutex_trylock() on Win32
systems as well as when using the safe mutexes.
2007-10-01 15:11:15 +02:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
serg@serg.mylan
e91712d9bb pthread_handler_decl() changed to be ctags-friendly
(and contain extern "C" when necessary)
2005-10-08 16:39:55 +02:00
monty@hundin.mysql.fi
b658662ae4 Update copyright
Fixed memory leak on shutdown (Affects the embedded version & MyODBC)
2001-12-06 14:10:51 +02:00
monty@donna.mysql.fi
aa11573380 Added defines for fast mutex in glibc 2.2 (should be safe)
Fixed crash in SELECT DISTINCT SUM(...)
Fix return value of mysortncmp() for innobase
Fix join_crash bug
2001-03-24 20:15:14 +02:00
monty@donna.mysql.com
828bff9195 Fixes for automatic recover of MyISAM tables 2000-10-17 16:19:24 +03:00
monty@donna.mysql.com
7ac13c89e6 Fix of LEFT JOIN optimizer bug, problem with key cache on Windows and
a lot of portability issues.
2000-10-14 03:16:35 +03:00
monty@donna.mysql.com
df280335b0 Fix for SAFE_MUTEX + MERGE tables 2000-09-21 01:58:38 +03:00
monty@donna.mysql.com
830d308960 Fix for SAFE_MUTEX on windows 2000-09-20 19:37:07 +03:00
monty@donna.mysql.com
ea013c2152 Fixed for Ia64 + delayed key creation + a lot of small bug fixes 2000-08-15 20:09:37 +03:00
bk@work.mysql.com
f4c589ff6c Import changeset 2000-07-31 21:29:14 +02:00