Commit e81a01b0 authored by unknown's avatar unknown

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 5281729e a1565cdc
...@@ -561,17 +561,28 @@ bool LOGGER::error_log_print(enum loglevel level, const char *format, ...@@ -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); DBUG_ASSERT(inited == 1);
(void) pthread_mutex_destroy(&LOCK_logger); (void) pthread_mutex_destroy(&LOCK_logger);
if (table_log_handler) if (table_log_handler)
{
table_log_handler->cleanup(); table_log_handler->cleanup();
delete table_log_handler;
}
if (file_log_handler) if (file_log_handler)
file_log_handler->cleanup(); 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) void LOGGER::close_log_table(uint log_type, bool lock_in_use)
{ {
table_log_handler->close_log_table(log_type, lock_in_use); table_log_handler->close_log_table(log_type, lock_in_use);
......
...@@ -479,7 +479,10 @@ public: ...@@ -479,7 +479,10 @@ public:
{ {
return (THD *) table_log_handler->slow_log_thd; 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, bool error_log_print(enum loglevel level, const char *format,
va_list args); va_list args);
bool slow_log_print(THD *thd, const char *query, uint query_length, bool slow_log_print(THD *thd, const char *query, uint query_length,
......
...@@ -1144,7 +1144,8 @@ void clean_up(bool print_message) ...@@ -1144,7 +1144,8 @@ void clean_up(bool print_message)
if (cleanup_done++) if (cleanup_done++)
return; /* purecov: inspected */ return; /* purecov: inspected */
logger.cleanup(); logger.cleanup_base();
/* /*
make sure that handlers finish up make sure that handlers finish up
what they have that is dependent on the binlog what they have that is dependent on the binlog
...@@ -1237,6 +1238,8 @@ void clean_up(bool print_message) ...@@ -1237,6 +1238,8 @@ void clean_up(bool print_message)
/* do the broadcast inside the lock to ensure that my_end() is not called */ /* do the broadcast inside the lock to ensure that my_end() is not called */
(void) pthread_cond_broadcast(&COND_thread_count); (void) pthread_cond_broadcast(&COND_thread_count);
(void) pthread_mutex_unlock(&LOCK_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 The following lines may never be executed as the main thread may have
killed us 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