diff options
author | Libing Song <anders.song@greatopensource.com> | 2011-01-19 01:38:10 +0800 |
---|---|---|
committer | Libing Song <anders.song@greatopensource.com> | 2011-01-19 01:38:10 +0800 |
commit | 2d0fcc1d44b72f00fea057f3eaf8975d55f9c5f5 (patch) | |
tree | 48e0ff06d27977ce1e9919d20903323c7d4ffa0b /sql/slave.cc | |
parent | 634b102533d948f669f0291374664ce4e8780d49 (diff) | |
parent | 5d75729c928338c2b49752b9b271ff7eb9a261ec (diff) | |
download | mariadb-git-2d0fcc1d44b72f00fea057f3eaf8975d55f9c5f5.tar.gz |
Manual merge
Diffstat (limited to 'sql/slave.cc')
-rw-r--r-- | sql/slave.cc | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/sql/slave.cc b/sql/slave.cc index e081d2406be..e9daa804cc3 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -504,6 +504,30 @@ int terminate_slave_threads(Master_info* mi,int thread_mask,bool skip_lock) mysql_mutex_t *sql_lock = &mi->rli.run_lock, *io_lock = &mi->run_lock; mysql_mutex_t *log_lock= mi->rli.relay_log.get_log_lock(); + if (thread_mask & (SLAVE_SQL|SLAVE_FORCE_ALL)) + { + DBUG_PRINT("info",("Terminating SQL thread")); + mi->rli.abort_slave=1; + if ((error=terminate_slave_thread(mi->rli.sql_thd, sql_lock, + &mi->rli.stop_cond, + &mi->rli.slave_running, + skip_lock)) && + !force_all) + DBUG_RETURN(error); + + mysql_mutex_lock(log_lock); + + DBUG_PRINT("info",("Flushing relay-log info file.")); + if (current_thd) + thd_proc_info(current_thd, "Flushing relay-log info file."); + if (flush_relay_log_info(&mi->rli)) + DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS); + + if (my_sync(mi->rli.info_fd, MYF(MY_WME))) + DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS); + + mysql_mutex_unlock(log_lock); + } if (thread_mask & (SLAVE_IO|SLAVE_FORCE_ALL)) { DBUG_PRINT("info",("Terminating IO thread")); @@ -532,30 +556,6 @@ int terminate_slave_threads(Master_info* mi,int thread_mask,bool skip_lock) mysql_mutex_unlock(log_lock); } - if (thread_mask & (SLAVE_SQL|SLAVE_FORCE_ALL)) - { - DBUG_PRINT("info",("Terminating SQL thread")); - mi->rli.abort_slave=1; - if ((error=terminate_slave_thread(mi->rli.sql_thd, sql_lock, - &mi->rli.stop_cond, - &mi->rli.slave_running, - skip_lock)) && - !force_all) - DBUG_RETURN(error); - - mysql_mutex_lock(log_lock); - - DBUG_PRINT("info",("Flushing relay-log info file.")); - if (current_thd) - thd_proc_info(current_thd, "Flushing relay-log info file."); - if (flush_relay_log_info(&mi->rli)) - DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS); - - if (my_sync(mi->rli.info_fd, MYF(MY_WME))) - DBUG_RETURN(ER_ERROR_DURING_FLUSH_LOGS); - - mysql_mutex_unlock(log_lock); - } DBUG_RETURN(0); } |