summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/guardian.cc
diff options
context:
space:
mode:
authorunknown <petr@mysql.com>2005-02-03 20:48:58 +0300
committerunknown <petr@mysql.com>2005-02-03 20:48:58 +0300
commitab432d6c05d957eeaf7b311a16f2928614241f03 (patch)
treec4350e561d489a4259b85272a8151651f10c9624 /server-tools/instance-manager/guardian.cc
parent92a52cccf6fe4f41f2b234b162daaae3d2e3ab26 (diff)
downloadmariadb-git-ab432d6c05d957eeaf7b311a16f2928614241f03.tar.gz
Various fixes (cleanups, valgrind, makefiles, ...)
server-tools/instance-manager/Makefile.am: increased default_monitoring interval server-tools/instance-manager/guardian.cc: some fixes for proper shutdown server-tools/instance-manager/guardian.h: removed init() prototype, as it was never used server-tools/instance-manager/instance.cc: cleanup() function removed server-tools/instance-manager/instance.h: cleanup() prototype removed server-tools/instance-manager/instance_map.cc: Instance_map::cleanup() removed, as instances have nothing to clean up server-tools/instance-manager/instance_map.h: Instance_map::cleanup() prototype removed server-tools/instance-manager/instance_options.cc: added print_argv() function for debug purposes server-tools/instance-manager/instance_options.h: declared print_argv() server-tools/instance-manager/listener.cc: some fixed in listener for proper shutdown server-tools/instance-manager/log.cc: cleanup server-tools/instance-manager/log.h: cleanup server-tools/instance-manager/manager.cc: some comments added server-tools/instance-manager/mysqlmanager.cc: we need to free memory in the very end server-tools/instance-manager/options.cc: fixed default options handling (as they were not working properly), added new method to cleanup Options server-tools/instance-manager/options.h: cleanup() declared server-tools/instance-manager/thread_registry.cc: cleanup server-tools/instance-manager/user_map.cc: missing password file is not a critical error anymore, as IM should be able to work as mysqld_safe only
Diffstat (limited to 'server-tools/instance-manager/guardian.cc')
-rw-r--r--server-tools/instance-manager/guardian.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/server-tools/instance-manager/guardian.cc b/server-tools/instance-manager/guardian.cc
index e8f9068dbb9..bc05fda1a8f 100644
--- a/server-tools/instance-manager/guardian.cc
+++ b/server-tools/instance-manager/guardian.cc
@@ -48,7 +48,6 @@ Guardian_thread::Guardian_thread(Thread_registry &thread_registry_arg,
pthread_cond_init(&COND_guardian, 0);
shutdown_guardian= FALSE;
is_stopped= FALSE;
- thread_registry.register_thread(&thread_info);
init_alloc_root(&alloc, MEM_ROOT_BLOCK_SIZE, 0);
guarded_instances= NULL;
starting_instances= NULL;
@@ -60,7 +59,6 @@ Guardian_thread::~Guardian_thread()
/* delay guardian destruction to the moment when no one needs it */
pthread_mutex_lock(&LOCK_guardian);
free_root(&alloc, MYF(0));
- thread_registry.unregister_thread(&thread_info);
pthread_mutex_unlock(&LOCK_guardian);
pthread_mutex_destroy(&LOCK_guardian);
pthread_cond_destroy(&COND_guardian);
@@ -102,6 +100,8 @@ void Guardian_thread::run()
LIST *loop;
struct timespec timeout;
+ thread_registry.register_thread(&thread_info);
+
my_thread_init();
pthread_mutex_lock(&LOCK_guardian);
@@ -110,6 +110,7 @@ void Guardian_thread::run()
{
int status= 0;
loop= guarded_instances;
+
while (loop != NULL)
{
instance= ((GUARD_NODE *) loop->data)->instance;
@@ -167,6 +168,7 @@ void Guardian_thread::run()
stop_instances();
is_stopped= TRUE;
/* now, when the Guardian is stopped we can stop the IM */
+ thread_registry.unregister_thread(&thread_info);
thread_registry.request_shutdown();
my_thread_end();
}
@@ -181,7 +183,7 @@ int Guardian_thread::start()
while ((instance= iterator.next()))
{
if ((instance->options.nonguarded == NULL))
- if (guard(instance))
+ if (add_instance_to_list(instance, &guarded_instances))
return 1;
}
instance_map->unlock();