mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge amd64.(none):/src/bug26243/my50-bug26243
into amd64.(none):/src/bug26243/my51-bug26243 dbug/factorial.c: Auto merged dbug/user.r: Auto merged include/my_dbug.h: Auto merged libmysql/libmysql.c: Auto merged sql/item_cmpfunc.cc: Auto merged sql/net_serv.cc: Auto merged sql/sql_cache.cc: Auto merged sql/sql_select.cc: Auto merged storage/innobase/handler/ha_innodb.cc: Auto merged storage/myisam/mi_open.c: Auto merged tests/mysql_client_test.c: Auto merged dbug/dbug.c: Null Merge sql/mysqld.cc: Null Merge sql/opt_range.cc: Null Merge sql/set_var.cc: Null Merge sql/slave.cc: Null Merge storage/federated/ha_federated.cc: Null Merge storage/myisammrg/ha_myisammrg.cc: Null Merge client/mysql.cc: Manual Merge
This commit is contained in:
@ -1269,12 +1269,12 @@ sig_handler handle_sigint(int sig)
|
|||||||
|
|
||||||
/* terminate if no query being executed, or we already tried interrupting */
|
/* terminate if no query being executed, or we already tried interrupting */
|
||||||
if (!executing_query || interrupted_query)
|
if (!executing_query || interrupted_query)
|
||||||
mysql_end(sig);
|
goto err;
|
||||||
|
|
||||||
kill_mysql= mysql_init(kill_mysql);
|
kill_mysql= mysql_init(kill_mysql);
|
||||||
if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password,
|
if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password,
|
||||||
"", opt_mysql_port, opt_mysql_unix_port,0))
|
"", opt_mysql_port, opt_mysql_unix_port,0))
|
||||||
mysql_end(sig);
|
goto err;
|
||||||
|
|
||||||
/* kill_buffer is always big enough because max length of %lu is 15 */
|
/* kill_buffer is always big enough because max length of %lu is 15 */
|
||||||
sprintf(kill_buffer, "KILL /*!50000 QUERY */ %lu", mysql_thread_id(&mysql));
|
sprintf(kill_buffer, "KILL /*!50000 QUERY */ %lu", mysql_thread_id(&mysql));
|
||||||
@ -1283,6 +1283,22 @@ sig_handler handle_sigint(int sig)
|
|||||||
tee_fprintf(stdout, "Query aborted by Ctrl+C\n");
|
tee_fprintf(stdout, "Query aborted by Ctrl+C\n");
|
||||||
|
|
||||||
interrupted_query= 1;
|
interrupted_query= 1;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
err:
|
||||||
|
#ifdef _WIN32
|
||||||
|
/*
|
||||||
|
When SIGINT is raised on Windows, the OS creates a new thread to handle the
|
||||||
|
interrupt. Once that thread completes, the main thread continues running
|
||||||
|
only to find that it's resources have already been free'd when the sigint
|
||||||
|
handler called mysql_end().
|
||||||
|
*/
|
||||||
|
mysql_thread_end();
|
||||||
|
return;
|
||||||
|
#else
|
||||||
|
mysql_end(sig);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user