summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/instance_map.cc
diff options
context:
space:
mode:
authorunknown <petr@mysql.com>2005-01-25 13:57:26 +0300
committerunknown <petr@mysql.com>2005-01-25 13:57:26 +0300
commit28b1aefa000d752d7275fb3cb5d01545a39911ea (patch)
tree05e82bf06f7a9d9439257a6f19ee44ee4099fd3a /server-tools/instance-manager/instance_map.cc
parent6dbadfa12e7fdcea2cb99df13b8da3f1a78de0d7 (diff)
parentfb3d6c39a0dc128f5310aac2906cc1e6c6b7db59 (diff)
downloadmariadb-git-28b1aefa000d752d7275fb3cb5d01545a39911ea.tar.gz
Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.0-im
into mysql.com:/home/cps/mysql/devel/im-fix
Diffstat (limited to 'server-tools/instance-manager/instance_map.cc')
-rw-r--r--server-tools/instance-manager/instance_map.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/server-tools/instance-manager/instance_map.cc b/server-tools/instance-manager/instance_map.cc
index 9399d6e2563..2573729841b 100644
--- a/server-tools/instance-manager/instance_map.cc
+++ b/server-tools/instance-manager/instance_map.cc
@@ -123,6 +123,9 @@ Instance_map::Instance_map(const char *default_mysqld_path_arg,
int Instance_map::init()
{
+ pthread_mutex_init(&pid_cond.LOCK_pid, 0);
+ pthread_cond_init(&pid_cond.COND_pid, 0);
+
if (hash_init(&hash, default_charset_info, START_HASH_SIZE, 0, 0,
get_instance_key, delete_instance, 0))
return 1;
@@ -135,6 +138,8 @@ Instance_map::~Instance_map()
hash_free(&hash);
pthread_mutex_unlock(&LOCK_instance_map);
pthread_mutex_destroy(&LOCK_instance_map);
+ pthread_mutex_destroy(&pid_cond.LOCK_pid);
+ pthread_cond_destroy(&pid_cond.COND_pid);
}
@@ -189,6 +194,7 @@ void Instance_map::complete_initialization()
while (i < hash.records)
{
instance= (Instance *) hash_element(&hash, i);
+ instance->complete_initialization(this);
instance->options.complete_initialization(mysqld_path, user, password);
i++;
}
@@ -218,7 +224,8 @@ Instance_map::find(uint instance_number)
Instance *instance;
char name[80];
- sprintf(name, "mysqld%i", instance_number);
+ snprintf(name, sizeof(name) - 1, "mysqld%i", instance_number);
+ name[sizeof(name) - 1]= 0; /* safety */
pthread_mutex_lock(&LOCK_instance_map);
instance= (Instance *) hash_search(&hash, (byte *) name, strlen(name));
pthread_mutex_unlock(&LOCK_instance_map);