Commit 423119d2 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/mysql-5.1-virgin
parents ac6450b8 de97f94a
...@@ -676,20 +676,36 @@ bool LOGGER::flush_logs(THD *thd) ...@@ -676,20 +676,36 @@ bool LOGGER::flush_logs(THD *thd)
/* reopen log files */ /* reopen log files */
file_log_handler->flush(); file_log_handler->flush();
/* flush tables, in the case they are enabled */
if (logger.is_log_tables_initialized)
{
/* /*
this will lock and wait for all but the logger thread to release the This will lock and wait for all but the logger thread to release the
tables. Then we could reopen log tables. Then release the name locks. tables. Then we could reopen log tables. Then release the name locks.
NOTE: in fact, the first parameter used in lock_and_wait_for_table_name()
and table_log_handler->flush() could be any non-NULL THD, as the
underlying code makes certain assumptions about this.
Here we use one of the logger handler THD's. Simply because it
seems appropriate.
*/ */
lock_and_wait_for_table_name(thd, &close_slow_log); lock_and_wait_for_table_name(table_log_handler->general_log_thd,
lock_and_wait_for_table_name(thd, &close_general_log); &close_slow_log);
lock_and_wait_for_table_name(table_log_handler->general_log_thd,
&close_general_log);
/* deny others from logging to general and slow log, while reopening tables */ /*
Deny others from logging to general and slow log,
while reopening tables.
*/
logger.lock(); logger.lock();
table_log_handler->flush(thd, &close_slow_log, &close_general_log); table_log_handler->flush(table_log_handler->general_log_thd,
&close_slow_log, &close_general_log);
/* end of log tables flush */ /* end of log tables flush */
logger.unlock(); logger.unlock();
}
return FALSE; return FALSE;
} }
......
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