summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorunknown <monty@narttu.mysql.fi>2003-08-17 14:10:15 +0300
committerunknown <monty@narttu.mysql.fi>2003-08-17 14:10:15 +0300
commit0eaf4d8d7e879b32d5e1e0c7ecb409bc4d4cb060 (patch)
tree87feb8f1e2709918215eaa5b5031a4a243ba4531 /sql/handler.cc
parent9ac61d15faf874589bd01ae9fa8d1854f6dc6621 (diff)
downloadmariadb-git-0eaf4d8d7e879b32d5e1e0c7ecb409bc4d4cb060.tar.gz
Fix mutex handling in SHOW_VARIABLES (key_buffer_size was not properly protected)
Changed some non fatal myisamchk error messages to warnings myisam/myisamchk.c: Change error -> warning sql/handler.cc: Add mutex around keybuff_size usage sql/mysql_priv.h: Indentation update sql/set_var.cc: Add mutex around longlong variable usage sql/sql_parse.cc: Fix mutex handling in SHOW_VARIABLES sql/sql_show.cc: Fix mutex handling in SHOW_VARIABLES
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc17
1 files changed, 14 insertions, 3 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index 505f64dff43..96611301bfa 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1020,14 +1020,25 @@ int ha_create_table(const char *name, HA_CREATE_INFO *create_info,
void ha_key_cache(void)
{
- if (keybuff_size)
- (void) init_key_cache((ulong) keybuff_size);
+ /*
+ The following mutex is not really needed as long as keybuff_size is
+ treated as a long value, but we use the mutex here to guard for future
+ changes.
+ */
+ pthread_mutex_lock(&LOCK_global_system_variables);
+ long tmp= keybuff_size;
+ pthread_mutex_unlock(&LOCK_global_system_variables);
+ if (tmp)
+ (void) init_key_cache(tmp);
}
void ha_resize_key_cache(void)
{
- (void) resize_key_cache((ulong) keybuff_size);
+ pthread_mutex_lock(&LOCK_global_system_variables);
+ long tmp= keybuff_size;
+ pthread_mutex_unlock(&LOCK_global_system_variables);
+ (void) resize_key_cache(tmp);
}