summaryrefslogtreecommitdiff
path: root/mysys
diff options
context:
space:
mode:
authorVladislav Vaintroub <vvaintroub@mysql.com>2010-02-13 17:01:32 +0100
committerVladislav Vaintroub <vvaintroub@mysql.com>2010-02-13 17:01:32 +0100
commite3a4741d05138d3850c7ed1788e3065c2f34548b (patch)
tree6514a0ffb792cd133aac6e0062b8c49449f2ab8e /mysys
parentcb31d4ccfeae5db50f46bf965cf561222696df02 (diff)
parent70cafe287e040123d325a82bddcdfe0ee7d613cd (diff)
downloadmariadb-git-e3a4741d05138d3850c7ed1788e3065c2f34548b.tar.gz
merge
Diffstat (limited to 'mysys')
-rw-r--r--mysys/my_init.c35
-rw-r--r--mysys/my_thr_init.c18
2 files changed, 27 insertions, 26 deletions
diff --git a/mysys/my_init.c b/mysys/my_init.c
index 31adc5ed99e..a3e53fdaae1 100644
--- a/mysys/my_init.c
+++ b/mysys/my_init.c
@@ -74,6 +74,8 @@ static MYSQL_FILE instrumented_stdin;
*/
my_bool my_basic_init(void)
{
+ char * str;
+
if (my_basic_init_done)
return 0;
my_basic_init_done= 1;
@@ -82,6 +84,19 @@ my_bool my_basic_init(void)
my_umask= 0660; /* Default umask for new files */
my_umask_dir= 0700; /* Default umask for new directories */
+#ifndef VMS
+ /* Default creation of new files */
+ if ((str= getenv("UMASK")) != 0)
+ my_umask= (int) (atoi_octal(str) | 0600);
+ /* Default creation of new dir's */
+ if ((str= getenv("UMASK_DIR")) != 0)
+ my_umask_dir= (int) (atoi_octal(str) | 0700);
+#endif
+
+ /* $HOME is needed early to parse configuration files located in ~/ */
+ if ((home_dir= getenv("HOME")) != 0)
+ home_dir= intern_filename(home_dir_buff, home_dir);
+
init_glob_errs();
instrumented_stdin.m_file= stdin;
@@ -124,7 +139,6 @@ my_bool my_basic_init(void)
my_bool my_init(void)
{
- char * str;
if (my_init_done)
return 0;
my_init_done= 1;
@@ -142,24 +156,11 @@ my_bool my_init(void)
{
DBUG_ENTER("my_init");
DBUG_PROCESS((char*) (my_progname ? my_progname : "unknown"));
- if (!home_dir)
- { /* Don't initialize twice */
- my_win_init();
- if ((home_dir=getenv("HOME")) != 0)
- home_dir=intern_filename(home_dir_buff,home_dir);
-#ifndef VMS
- /* Default creation of new files */
- if ((str=getenv("UMASK")) != 0)
- my_umask=(int) (atoi_octal(str) | 0600);
- /* Default creation of new dir's */
- if ((str=getenv("UMASK_DIR")) != 0)
- my_umask_dir=(int) (atoi_octal(str) | 0700);
-#endif
+ my_win_init();
#ifdef VMS
- init_ctype(); /* Stupid linker don't link _ctype.c */
+ init_ctype(); /* Stupid linker don't link _ctype.c */
#endif
- DBUG_PRINT("exit",("home: '%s'",home_dir));
- }
+ DBUG_PRINT("exit", ("home: '%s'", home_dir));
#ifdef __WIN__
win32_init_tcp_ip();
#endif
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 33a6b2eb615..236b694726f 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -103,6 +103,15 @@ my_bool my_thread_basic_global_init(void)
PTHREAD_MUTEX_ADAPTIVE_NP);
#endif
+#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
+ /*
+ Set mutex type to "errorcheck"
+ */
+ pthread_mutexattr_init(&my_errorcheck_mutexattr);
+ pthread_mutexattr_settype(&my_errorcheck_mutexattr,
+ PTHREAD_MUTEX_ERRORCHECK);
+#endif
+
mysql_mutex_init(key_THR_LOCK_malloc, &THR_LOCK_malloc, MY_MUTEX_INIT_FAST);
mysql_mutex_init(key_THR_LOCK_open, &THR_LOCK_open, MY_MUTEX_INIT_FAST);
mysql_mutex_init(key_THR_LOCK_charset, &THR_LOCK_charset, MY_MUTEX_INIT_FAST);
@@ -205,15 +214,6 @@ my_bool my_thread_global_init(void)
}
#endif /* TARGET_OS_LINUX */
-#ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
- /*
- Set mutex type to "errorcheck"
- */
- pthread_mutexattr_init(&my_errorcheck_mutexattr);
- pthread_mutexattr_settype(&my_errorcheck_mutexattr,
- PTHREAD_MUTEX_ERRORCHECK);
-#endif
-
mysql_mutex_init(key_THR_LOCK_lock, &THR_LOCK_lock, MY_MUTEX_INIT_FAST);
mysql_mutex_init(key_THR_LOCK_isam, &THR_LOCK_isam, MY_MUTEX_INIT_SLOW);
mysql_mutex_init(key_THR_LOCK_myisam, &THR_LOCK_myisam, MY_MUTEX_INIT_SLOW);