Commit 22fa171c authored by sasha@mysql.sashanet.com's avatar sasha@mysql.sashanet.com
Browse files

Merge work:/home/bk/mysql

into mysql.sashanet.com:/home/sasha/src/bk/mysql
parents a2a838f8 82a7b0f7
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -602,16 +602,13 @@ int stop_slave(THD* thd, bool net_report )
  if (slave_running)
  {
    abort_slave = 1;
    thr_alarm_kill(slave_real_id);
#ifdef SIGNAL_WITH_VIO_CLOSE
    slave_thd->close_active_vio();
#endif    
    KICK_SLAVE;
    // do not abort the slave in the middle of a query, so we do not set
    // thd->killed for the slave thread
    thd->proc_info = "waiting for slave to die";
    while(slave_running)
    {
      /* there is a small change that slave thread might miss the first
      /* there is a small chance that slave thread might miss the first
	 alarm. To protect againts it, resend the signal until it reacts
      */
	 
@@ -630,7 +627,7 @@ int stop_slave(THD* thd, bool net_report )
#endif
      pthread_cond_timedwait(&COND_slave_stopped, &LOCK_slave, &abstime);
      if (slave_running)
        thr_alarm_kill(slave_real_id);
        KICK_SLAVE;
    }
  }
  else
@@ -716,7 +713,7 @@ int change_master(THD* thd)
  if((slave_was_running = slave_running))
    {
      abort_slave = 1;
      thr_alarm_kill(slave_real_id);
      KICK_SLAVE;
      thd->proc_info = "waiting for slave to die";
      while(slave_running)
       pthread_cond_wait(&COND_slave_stopped, &LOCK_slave); // wait until done
+7 −0
Original line number Diff line number Diff line
@@ -14,6 +14,13 @@ extern int max_binlog_dump_events;
extern bool opt_sporadic_binlog_dump_fail;
#endif

#ifdef SIGNAL_WITH_VIO_CLOSE
#define KICK_SLAVE { slave_thd->close_active_vio(); \
  thr_alarm_kill(slave_real_id); }
#else
#define KICK_SLAVE thr_alarm_kill(slave_real_id);
#endif

File open_binlog(IO_CACHE *log, const char *log_file_name,
	      const char **errmsg);