1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

Bug #28284: Test "mysqlslap" reports "out of memory"

When locking a "fast" mutex a static variable cpu_count 
was used as a flag to initialize itself on the first usage 
by calling sysconf() and setting non-zero value.
This is not thread and optimization safe on some 
platforms. That's why the global initialization needs 
to be done once in a designated function.
This will also speed up the usage (by a small bit) 
because it won't have to check if it's initialized on
every call.

Fixed by moving the fast mutexes initialization out of 
my_pthread_fastmutex_lock() to fastmutex_global_init()
and call it from my_init()


include/my_pthread.h:
  Bug #28284: move the fast mutexes initialization out of 
  my_pthread_fastmutex_lock() to fastmutex_global_init()
  and call it from my_init()
mysys/my_init.c:
  Bug #28284: move the fast mutexes initialization out of 
  my_pthread_fastmutex_lock() to fastmutex_global_init()
  and call it from my_init()
mysys/thr_mutex.c:
  Bug #28284: move the fast mutexes initialization out of 
  my_pthread_fastmutex_lock() to fastmutex_global_init()
  and call it from my_init()
This commit is contained in:
unknown
2007-08-24 18:06:44 +03:00
parent 0aefd73b3d
commit 06d80f1119
3 changed files with 15 additions and 6 deletions

View File

@@ -538,6 +538,7 @@ typedef struct st_my_pthread_fastmutex_t
pthread_mutex_t mutex;
uint spins;
} my_pthread_fastmutex_t;
void fastmutex_global_init(void);
int my_pthread_fastmutex_init(my_pthread_fastmutex_t *mp,
const pthread_mutexattr_t *attr);