Loading server-tools/instance-manager/instance_map.cc +3 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,8 @@ int Instance_map::flush_instances() hash_init(&hash, default_charset_info, START_HASH_SIZE, 0, 0, get_instance_key, delete_instance, 0); rc= load(); /* don't init guardian if we failed to load instances */ if (!rc) guardian->init(); // TODO: check error status. pthread_mutex_unlock(&LOCK_instance_map); guardian->unlock(); Loading server-tools/instance-manager/manager.cc +17 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,19 @@ int my_sigwait(const sigset_t *set, int *sig) #endif void stop_all(Guardian_thread *guardian, Thread_registry *registry) { /* Let guardian thread know that it should break it's processing cycle, once it wakes up. */ guardian->request_shutdown(true); /* wake guardian */ pthread_cond_signal(&guardian->COND_guardian); /* stop all threads */ registry->deliver_shutdown(); } /* manager - entry point to the main instance manager process: start listener thread, write pid file and enter into signal handling. Loading Loading @@ -210,7 +223,8 @@ void manager(const Options &options) log_error("Cannot init instances repository. This might be caused by " "the wrong config file options. For instance, missing mysqld " "binary. Aborting."); return; stop_all(&guardian_thread, &thread_registry); goto err; } /* create the listener */ Loading @@ -227,6 +241,7 @@ void manager(const Options &options) if (rc) { log_error("manager(): set_stacksize_n_create_thread(listener) failed"); stop_all(&guardian_thread, &thread_registry); goto err; } Loading @@ -245,6 +260,7 @@ void manager(const Options &options) if ((status= my_sigwait(&mask, &signo)) != 0) { log_error("sigwait() failed"); stop_all(&guardian_thread, &thread_registry); goto err; } Loading server-tools/instance-manager/options.cc +2 −2 Original line number Diff line number Diff line Loading @@ -45,10 +45,10 @@ const char *default_password_file_name= QUOTE(DEFAULT_PASSWORD_FILE_NAME); const char *default_log_file_name= QUOTE(DEFAULT_LOG_FILE_NAME); const char *Options::config_file= QUOTE(DEFAULT_CONFIG_FILE); const char *Options::angel_pid_file_name= NULL; const char *Options::socket_file_name= QUOTE(DEFAULT_SOCKET_FILE_NAME); #endif const char *Options::log_file_name= default_log_file_name; const char *Options::pid_file_name= QUOTE(DEFAULT_PID_FILE_NAME); const char *Options::socket_file_name= QUOTE(DEFAULT_SOCKET_FILE_NAME); const char *Options::password_file_name= default_password_file_name; const char *Options::default_mysqld_path= QUOTE(DEFAULT_MYSQLD_PATH); const char *Options::bind_address= 0; /* No default value */ Loading Loading @@ -106,11 +106,11 @@ static struct my_option my_long_options[] = (gptr *) &Options::angel_pid_file_name, (gptr *) &Options::angel_pid_file_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, #endif { "socket", OPT_SOCKET, "Socket file to use for connection.", (gptr *) &Options::socket_file_name, (gptr *) &Options::socket_file_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, #endif { "passwd", 'P', "Prepare entry for passwd file and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, Loading server-tools/instance-manager/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -36,11 +36,11 @@ struct Options static char run_as_service; /* handle_options doesn't support bool */ static const char *user; static const char *angel_pid_file_name; static const char *socket_file_name; #endif static bool is_forced_default_file; static const char *log_file_name; static const char *pid_file_name; static const char *socket_file_name; static const char *password_file_name; static const char *default_mysqld_path; /* the option which should be passed to process_default_option_files */ Loading Loading
server-tools/instance-manager/instance_map.cc +3 −1 Original line number Diff line number Diff line Loading @@ -215,6 +215,8 @@ int Instance_map::flush_instances() hash_init(&hash, default_charset_info, START_HASH_SIZE, 0, 0, get_instance_key, delete_instance, 0); rc= load(); /* don't init guardian if we failed to load instances */ if (!rc) guardian->init(); // TODO: check error status. pthread_mutex_unlock(&LOCK_instance_map); guardian->unlock(); Loading
server-tools/instance-manager/manager.cc +17 −1 Original line number Diff line number Diff line Loading @@ -104,6 +104,19 @@ int my_sigwait(const sigset_t *set, int *sig) #endif void stop_all(Guardian_thread *guardian, Thread_registry *registry) { /* Let guardian thread know that it should break it's processing cycle, once it wakes up. */ guardian->request_shutdown(true); /* wake guardian */ pthread_cond_signal(&guardian->COND_guardian); /* stop all threads */ registry->deliver_shutdown(); } /* manager - entry point to the main instance manager process: start listener thread, write pid file and enter into signal handling. Loading Loading @@ -210,7 +223,8 @@ void manager(const Options &options) log_error("Cannot init instances repository. This might be caused by " "the wrong config file options. For instance, missing mysqld " "binary. Aborting."); return; stop_all(&guardian_thread, &thread_registry); goto err; } /* create the listener */ Loading @@ -227,6 +241,7 @@ void manager(const Options &options) if (rc) { log_error("manager(): set_stacksize_n_create_thread(listener) failed"); stop_all(&guardian_thread, &thread_registry); goto err; } Loading @@ -245,6 +260,7 @@ void manager(const Options &options) if ((status= my_sigwait(&mask, &signo)) != 0) { log_error("sigwait() failed"); stop_all(&guardian_thread, &thread_registry); goto err; } Loading
server-tools/instance-manager/options.cc +2 −2 Original line number Diff line number Diff line Loading @@ -45,10 +45,10 @@ const char *default_password_file_name= QUOTE(DEFAULT_PASSWORD_FILE_NAME); const char *default_log_file_name= QUOTE(DEFAULT_LOG_FILE_NAME); const char *Options::config_file= QUOTE(DEFAULT_CONFIG_FILE); const char *Options::angel_pid_file_name= NULL; const char *Options::socket_file_name= QUOTE(DEFAULT_SOCKET_FILE_NAME); #endif const char *Options::log_file_name= default_log_file_name; const char *Options::pid_file_name= QUOTE(DEFAULT_PID_FILE_NAME); const char *Options::socket_file_name= QUOTE(DEFAULT_SOCKET_FILE_NAME); const char *Options::password_file_name= default_password_file_name; const char *Options::default_mysqld_path= QUOTE(DEFAULT_MYSQLD_PATH); const char *Options::bind_address= 0; /* No default value */ Loading Loading @@ -106,11 +106,11 @@ static struct my_option my_long_options[] = (gptr *) &Options::angel_pid_file_name, (gptr *) &Options::angel_pid_file_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, #endif { "socket", OPT_SOCKET, "Socket file to use for connection.", (gptr *) &Options::socket_file_name, (gptr *) &Options::socket_file_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, #endif { "passwd", 'P', "Prepare entry for passwd file and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0 }, Loading
server-tools/instance-manager/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -36,11 +36,11 @@ struct Options static char run_as_service; /* handle_options doesn't support bool */ static const char *user; static const char *angel_pid_file_name; static const char *socket_file_name; #endif static bool is_forced_default_file; static const char *log_file_name; static const char *pid_file_name; static const char *socket_file_name; static const char *password_file_name; static const char *default_mysqld_path; /* the option which should be passed to process_default_option_files */ Loading