Commit 6c0dcad8 authored by mkindahl@dl145h.mysql.com's avatar mkindahl@dl145h.mysql.com
Browse files

Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl

into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
parents 9baeb72e 6a4c4b18
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -415,7 +415,20 @@ terminate_slave_thread(THD *thd,
  while (*slave_running)                        // Should always be true
  {
    DBUG_PRINT("loop", ("killing slave thread"));
    KICK_SLAVE(thd);

    pthread_mutex_lock(&thd->LOCK_delete);
#ifndef DONT_USE_THR_ALARM
    /*
      Error codes from pthread_kill are:
      EINVAL: invalid signal number (can't happen)
      ESRCH: thread already killed (can happen, should be ignored)
    */
    IF_DBUG(int err= ) pthread_kill(thd->real_id, thr_client_alarm);
    DBUG_ASSERT(err != EINVAL);
#endif
    thd->awake(THD::NOT_KILLED);
    pthread_mutex_unlock(&thd->LOCK_delete);

    /*
      There is a small chance that slave thread might miss the first
      alarm. To protect againts it, resend the signal until it reacts
+0 −6
Original line number Diff line number Diff line
@@ -36,12 +36,6 @@ extern bool server_id_supplied;
extern int max_binlog_dump_events;
extern my_bool opt_sporadic_binlog_dump_fail;

#define KICK_SLAVE(thd) do {                                            \
                          pthread_mutex_lock(&(thd)->LOCK_delete);      \
                          (thd)->awake(THD::NOT_KILLED);                \
                          pthread_mutex_unlock(&(thd)->LOCK_delete);    \
                        } while(0)

int start_slave(THD* thd, Master_info* mi, bool net_report);
int stop_slave(THD* thd, Master_info* mi, bool net_report);
bool change_master(THD* thd, Master_info* mi);