Commit 01824dd7 authored by petr@mysql.com's avatar petr@mysql.com

Merge pchardin@bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  mysql.com:/home/cps/mysql/trees/5.1/5.1-virgin-debug
parents c61ee0fb 2b8f3b3e
......@@ -561,17 +561,28 @@ bool LOGGER::error_log_print(enum loglevel level, const char *format,
}
void LOGGER::cleanup()
void LOGGER::cleanup_base()
{
DBUG_ASSERT(inited == 1);
(void) pthread_mutex_destroy(&LOCK_logger);
if (table_log_handler)
{
table_log_handler->cleanup();
delete table_log_handler;
}
if (file_log_handler)
file_log_handler->cleanup();
}
void LOGGER::cleanup_end()
{
DBUG_ASSERT(inited == 1);
if (file_log_handler)
delete file_log_handler;
}
void LOGGER::close_log_table(uint log_type, bool lock_in_use)
{
table_log_handler->close_log_table(log_type, lock_in_use);
......
......@@ -479,7 +479,10 @@ public:
{
return (THD *) table_log_handler->slow_log_thd;
}
void cleanup();
/* Perform basic logger cleanup. this will leave e.g. error log open. */
void cleanup_base();
/* Free memory. Nothing could be logged after this function is called */
void cleanup_end();
bool error_log_print(enum loglevel level, const char *format,
va_list args);
bool slow_log_print(THD *thd, const char *query, uint query_length,
......
......@@ -1144,7 +1144,8 @@ void clean_up(bool print_message)
if (cleanup_done++)
return; /* purecov: inspected */
logger.cleanup();
logger.cleanup_base();
/*
make sure that handlers finish up
what they have that is dependent on the binlog
......@@ -1237,6 +1238,8 @@ void clean_up(bool print_message)
/* do the broadcast inside the lock to ensure that my_end() is not called */
(void) pthread_cond_broadcast(&COND_thread_count);
(void) pthread_mutex_unlock(&LOCK_thread_count);
logger.cleanup_end();
/*
The following lines may never be executed as the main thread may have
killed us
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment