[Groonga-mysql-commit] mroonga/mroonga [master] [mysql51] don't lock/unlock LOCK_open mutex on rename/delete.

Back to archive index

null+****@clear***** null+****@clear*****
2011年 11月 27日 (日) 09:44:35 JST


Kouhei Sutou	2011-11-27 00:44:35 +0000 (Sun, 27 Nov 2011)

  New Revision: d6ac92d1716c5f4d81d2228fc9262d048cfe49d5

  Log:
    [mysql51] don't lock/unlock LOCK_open mutex on rename/delete.
    
    refs #1168

  Modified files:
    ha_mroonga.cc

  Modified: ha_mroonga.cc (+12 -8)
===================================================================
--- ha_mroonga.cc    2011-11-27 00:29:30 +0000 (167a399)
+++ ha_mroonga.cc    2011-11-27 00:44:35 +0000 (9289fb2)
@@ -59,10 +59,14 @@
 
 #if MYSQL_VERSION_ID >= 50500
 extern mysql_mutex_t LOCK_open;
+#  define mrn_open_mutex_lock() mysql_mutex_lock(&LOCK_open)
+#  define mrn_open_mutex_unlock() mysql_mutex_unlock(&LOCK_open)
 #else
 extern pthread_mutex_t LOCK_open;
 #  define mysql_mutex_lock(mutex) pthread_mutex_lock(mutex)
 #  define mysql_mutex_unlock(mutex) pthread_mutex_unlock(mutex)
+#  define mrn_open_mutex_lock()
+#  define mrn_open_mutex_unlock()
 #endif
 
 #if MYSQL_VERSION_ID >= 50603
@@ -2821,9 +2825,9 @@ int ha_mroonga::delete_table(const char *name)
 #else
     table_list.init_one_table(db_name, tbl_name, TL_WRITE);
 #endif
-    mysql_mutex_lock(&LOCK_open);
+    mrn_open_mutex_lock();
     tmp_table_share = mrn_q_get_table_share(&table_list, name, &error);
-    mysql_mutex_unlock(&LOCK_open);
+    mrn_open_mutex_unlock();
     if (!tmp_table_share) {
       DBUG_RETURN(error);
     }
@@ -2846,9 +2850,9 @@ int ha_mroonga::delete_table(const char *name)
   }
 
   mrn_free_share(tmp_share);
-  mysql_mutex_lock(&LOCK_open);
+  mrn_open_mutex_lock();
   free_table_share(tmp_table_share);
-  mysql_mutex_unlock(&LOCK_open);
+  mrn_open_mutex_unlock();
   DBUG_RETURN(error);
 }
 
@@ -7303,9 +7307,9 @@ int ha_mroonga::rename_table(const char *from, const char *to)
 #else
   table_list.init_one_table(from_db_name, from_tbl_name, TL_WRITE);
 #endif
-  mysql_mutex_lock(&LOCK_open);
+  mrn_open_mutex_lock();
   tmp_table_share = mrn_q_get_table_share(&table_list, from, &error);
-  mysql_mutex_unlock(&LOCK_open);
+  mrn_open_mutex_unlock();
   if (!tmp_table_share) {
     DBUG_RETURN(error);
   }
@@ -7354,9 +7358,9 @@ int ha_mroonga::rename_table(const char *from, const char *to)
   mrn_free_share(tmp_share);
   if (to_tbl_name[0] != '#')
   {
-    mysql_mutex_lock(&LOCK_open);
+    mrn_open_mutex_lock();
     free_table_share(tmp_table_share);
-    mysql_mutex_unlock(&LOCK_open);
+    mrn_open_mutex_unlock();
   }
   DBUG_RETURN(error);
 }




Groonga-mysql-commit メーリングリストの案内
Back to archive index