diff options
author | unknown <monty@work.mysql.com> | 2001-09-02 18:38:33 +0200 |
---|---|---|
committer | unknown <monty@work.mysql.com> | 2001-09-02 18:38:33 +0200 |
commit | ddee00a6edc735b3bbef42b7d0d662091debd560 (patch) | |
tree | 4689ffbe50e97ce9a47deb58fa2b9e7decdfc6a8 /sql/sql_repl.cc | |
parent | 3c951b6d99dd2753522501adce2d28f40d54a5e3 (diff) | |
parent | 1e97b27ee2b908a17c12962778b82237934a6b73 (diff) | |
download | mariadb-git-ddee00a6edc735b3bbef42b7d0d662091debd560.tar.gz |
merge with 3.23.42
config.guess:
Auto merged
config.sub:
Auto merged
ltconfig:
Auto merged
BitKeeper/deleted/.del-violite.c~d7b85be615595ace:
Auto merged
BitKeeper/deleted/.del-violite.c~984c09cffe14a11b:
Auto merged
client/Makefile.am:
Auto merged
include/errmsg.h:
Auto merged
include/global.h:
Auto merged
include/heap.h:
Auto merged
include/my_sys.h:
Auto merged
include/mysql_com.h:
Auto merged
isam/isamlog.c:
Auto merged
libmysql/libmysql.c:
Auto merged
merge/open.c:
Auto merged
myisam/ft_search.c:
Auto merged
myisam/ftdefs.h:
Auto merged
myisam/mi_test_all.sh:
Auto merged
myisam/myisamchk.c:
Auto merged
myisam/myisamlog.c:
Auto merged
myisam/myisampack.c:
Auto merged
myisam/sort.c:
Auto merged
myisammrg/myrg_open.c:
Auto merged
mysys/hash.c:
Auto merged
mysys/mf_casecnv.c:
Auto merged
mysys/mf_format.c:
Auto merged
mysys/my_lib.c:
Auto merged
mysys/tree.c:
Auto merged
sql-bench/bench-init.pl.sh:
Auto merged
sql/filesort.cc:
Auto merged
sql/ha_myisam.cc:
Auto merged
sql/ha_myisammrg.cc:
Auto merged
sql/handler.cc:
Auto merged
sql/handler.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/lex.h:
Auto merged
sql/log.cc:
Auto merged
sql/log_event.cc:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/net_serv.cc:
Auto merged
sql/slave.cc:
Auto merged
sql/sql_acl.cc:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_db.cc:
Auto merged
sql/sql_delete.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
sql/sql_parse.cc:
Auto merged
sql/sql_select.cc:
Auto merged
sql/sql_show.cc:
Auto merged
mysql-test/r/func_time.result:
Auto merged
mysql-test/r/innodb.result:
Auto merged
mysql-test/t/bdb.test:
Auto merged
mysql-test/t/err000001.test:
Auto merged
mysql-test/t/func_time.test:
Auto merged
mysql-test/t/innodb.test:
Auto merged
mysql-test/t/overflow.test:
Auto merged
mysql-test/t/show_check.test:
Auto merged
sql/sql_table.cc:
Auto merged
sql/sql_test.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/sql_yacc.yy:
Auto merged
strings/ctype.c:
Auto merged
Docs/manual.texi:
Change to 3.23 manual.
(I will later add the changes for 4.0 to this copy)
client/mysql.cc:
merge
client/mysqlbinlog.cc:
merge
client/mysqldump.c:
merge
client/mysqltest.c:
merge
client/thread_test.c:
merge
configure.in:
merge
include/my_pthread.h:
merge
include/mysqld_error.h:
merge
libmysql/net.c:
merge
myisam/mi_cache.c:
merge
myisam/mi_check.c:
merge
mysql-test/t/fulltext.test:
merge
mysys/mf_qsort.c:
merge
sql/lock.cc:
merge
sql/md5.c:
merge
sql/mini_client.cc:
merge
sql/share/czech/errmsg.txt:
merge
sql/share/danish/errmsg.txt:
merge
sql/share/dutch/errmsg.txt:
merge
sql/share/english/errmsg.txt:
merge
sql/share/estonian/errmsg.txt:
merge
sql/share/french/errmsg.txt:
merge
sql/share/german/errmsg.txt:
merge
sql/share/greek/errmsg.txt:
merge
sql/share/hungarian/errmsg.txt:
merge
sql/share/italian/errmsg.txt:
merge
sql/share/japanese/errmsg.txt:
merge
sql/share/korean/errmsg.txt:
merge
sql/share/norwegian-ny/errmsg.txt:
merge
sql/share/norwegian/errmsg.txt:
merge
sql/share/polish/errmsg.txt:
merge
sql/share/portuguese/errmsg.txt:
merge
sql/share/romanian/errmsg.txt:
merge
sql/share/russian/errmsg.txt:
merge
sql/share/slovak/errmsg.txt:
merge
sql/share/spanish/errmsg.txt:
merge
sql/share/swedish/errmsg.txt:
merge
sql/sql_load.cc:
merge
sql/sql_repl.cc:
merge
Diffstat (limited to 'sql/sql_repl.cc')
-rw-r--r-- | sql/sql_repl.cc | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc index 7f49d6b2680..ff1cb125ef8 100644 --- a/sql/sql_repl.cc +++ b/sql/sql_repl.cc @@ -492,12 +492,10 @@ impossible position"; log.error=0; // tell the kill thread how to wake us up - pthread_mutex_lock(&thd->mysys_var->mutex); thd->mysys_var->current_mutex = log_lock; thd->mysys_var->current_cond = &COND_binlog_update; const char* proc_info = thd->proc_info; thd->proc_info = "Slave connection: waiting for binlog update"; - pthread_mutex_unlock(&thd->mysys_var->mutex); bool read_packet = 0, fatal_error = 0; @@ -522,7 +520,8 @@ impossible position"; break; case LOG_READ_EOF: DBUG_PRINT("wait",("waiting for data on binary log")); - pthread_cond_wait(&COND_binlog_update, log_lock); + if (!thd->killed) + pthread_cond_wait(&COND_binlog_update, log_lock); break; default: @@ -700,6 +699,9 @@ int stop_slave(THD* thd, bool net_report ) #ifdef HAVE_TIMESPEC_TS_SEC abstime.ts_sec=time(NULL)+2; abstime.ts_nsec=0; +#elif defined(__WIN__) + abstime.tv_sec=time((time_t*) 0)+2; + abstime.tv_nsec=0; #else struct timeval tv; gettimeofday(&tv,0); @@ -765,17 +767,19 @@ void kill_zombie_dump_threads(uint32 slave_server_id) if (tmp->command == COM_BINLOG_DUMP && tmp->server_id == slave_server_id) { - // here we do not call kill_one_thread() - // it will be slow because it will iterate through the list - // again. Plus it double-locks LOCK_thread_count, which - // make safe_mutex complain and abort - // so we just to our own thread murder + /* + Here we do not call kill_one_thread() as + it will be slow because it will iterate through the list + again. Plus it double-locks LOCK_tread_count, which + make safe_mutex complain and abort. + We just to do kill the thread ourselves. + */ thr_alarm_kill(tmp->real_id); tmp->killed = 1; - pthread_mutex_lock(&tmp->mysys_var->mutex); tmp->mysys_var->abort = 1; - if (tmp->mysys_var->current_mutex) + pthread_mutex_lock(&tmp->mysys_var->mutex); + if (tmp->mysys_var->current_cond) { pthread_mutex_lock(tmp->mysys_var->current_mutex); pthread_cond_broadcast(tmp->mysys_var->current_cond); @@ -784,7 +788,7 @@ void kill_zombie_dump_threads(uint32 slave_server_id) pthread_mutex_unlock(&tmp->mysys_var->mutex); } } - pthread_mutex_unlock(&LOCK_thread_count); + pthread_mutex_unlock(&LOCK_thread_count); } |