List:Commits« Previous MessageNext Message »
From:Chad MILLER Date:January 12 2009 8:57pm
Subject:bzr commit into mysql-5.1-bugteam branch (chad:2730) Bug#36428 Bug#38364
View as plain text  
#At file:///home/cmiller/work/mysqlbzr/mysql-5.1-bugteam--bug38364/ based on
revid:davi.arnaut@stripped

 2730 Chad MILLER	2009-01-12
      Bug#38364: gen_lex_hash segmentation fault in debug build
      Bug#36428: MY_MUTEX_INIT_FAST is used before initialization
      
      On some thread implementations, we need a fake mutex attri-
      bute as a placeholder, which we define as a global variable,
      "my_fast_mutexattr".  Well. that must be initialized before 
      used in any mutexes, and the ordering of initializations in 
      the API function  my_init()  was wrong.
      
      Now, put my_thread_global_init(), which initializes the attri-
      butes that mutexes require.
modified:
  mysys/my_init.c

=== modified file 'mysys/my_init.c'
--- a/mysys/my_init.c	2008-11-10 20:38:45 +0000
+++ b/mysys/my_init.c	2009-01-12 19:48:02 +0000
@@ -78,8 +78,12 @@ my_bool my_init(void)
   my_umask= 0660;                       /* Default umask for new files */
   my_umask_dir= 0700;                   /* Default umask for new directories */
   init_glob_errs();
-#if defined(THREAD) && defined(SAFE_MUTEX)
+#if defined(THREAD)
+  if (my_thread_global_init())
+    return 1;
+#  if defined(SAFE_MUTEX)
   safe_mutex_global_init();		/* Must be called early */
+#  endif
 #endif
 #if defined(THREAD) && defined(MY_PTHREAD_FASTMUTEX) &&
!defined(SAFE_MUTEX)
   fastmutex_global_init();              /* Must be called early */
@@ -89,8 +93,6 @@ my_bool my_init(void)
 #if defined(HAVE_PTHREAD_INIT)
   pthread_init();			/* Must be called before DBUG_ENTER */
 #endif
-  if (my_thread_global_init())
-    return 1;
 #if !defined( __WIN__) && !defined(__NETWARE__)
   sigfillset(&my_signals);		/* signals blocked by mf_brkhant */
 #endif

Thread
bzr commit into mysql-5.1-bugteam branch (chad:2730) Bug#36428 Bug#38364Chad MILLER12 Jan 2009