Better handling of pings for idle connections

connleak
René Cannaò 10 years ago
parent fcdb773aee
commit 3bb455813e

@ -1567,7 +1567,10 @@ void MySQL_Thread::run() {
while (shutdown==0) {
int num_idles;
if (processing_idles==false && (last_processing_idles < curtime-mysql_thread___ping_interval_server_msec*1000/10) ) {
if (processing_idles==true && (last_processing_idles < curtime-mysql_thread___ping_timeout_server*1000)) {
processing_idles=false;
}
if (processing_idles==false && (last_processing_idles < curtime-mysql_thread___ping_interval_server_msec*1000) ) {
int i;
num_idles=MyHGM->get_multiple_idle_connections(-1, curtime-mysql_thread___ping_interval_server_msec*1000, my_idle_conns, SESSIONS_FOR_CONNECTIONS_HANDLER);
for (i=0; i<num_idles; i++) {
@ -1609,27 +1612,6 @@ void MySQL_Thread::run() {
last_processing_idles=curtime;
}
if (processing_idles==true && (last_processing_idles < curtime-3*mysql_thread___ping_timeout_server*1000)) {
processing_idles=false;
/*
int i;
for (i=0; i<num_idles; i++) {
MySQL_Data_Stream *myds;
myds=my_idle_myds[i];
if (myds->myconn) {
MyHGM->destroy_MyConn_from_pool(myds->myconn);
myds->myconn=NULL;
if (myds->fd) {
myds->shut_hard();
// shutdown(myds->fd,SHUT_RDWR);
// close(myds->fd);
myds->fd=0;
mypolls.remove_index_fast(myds->poll_fds_idx);
}
}
}
*/
}
for (n = 0; n < mypolls.len; n++) {
MySQL_Data_Stream *myds=NULL;

Loading…
Cancel
Save