diff --git a/include/MySQL_Session.h b/include/MySQL_Session.h index 9975051e2..a039b5d27 100644 --- a/include/MySQL_Session.h +++ b/include/MySQL_Session.h @@ -109,6 +109,8 @@ class MySQL_Session unsigned long long start_time; unsigned long long pause_until; + unsigned long long idle_since; + // pointers MySQL_Thread *thread; Query_Processor_Output *qpo; diff --git a/lib/MySQL_Thread.cpp b/lib/MySQL_Thread.cpp index 13ee796fb..c32673f98 100644 --- a/lib/MySQL_Thread.cpp +++ b/lib/MySQL_Thread.cpp @@ -2014,6 +2014,7 @@ __run_skip_1: mysess->thread=NULL; unregister_session(i); exit_cond=true; + mysess->idle_since = curtime - mysess->IdleTime(); idle_mysql_sessions->add(mysess); break; } @@ -2321,7 +2322,8 @@ __run_skip_1a: uint32_t sess_pos=mysess_idx; MySQL_Session *mysess=(MySQL_Session *)mysql_sessions->index(sess_pos); - unsigned long long sess_time = mysess->IdleTime(); + //unsigned long long sess_time = mysess->IdleTime(); + unsigned long long sess_time = curtime - mysess->idle_since; if ( (sess_time/1000 > (unsigned long long)mysql_thread___wait_timeout) ) { mysess->killed=true; //uint32_t sess_thr_id=mysess->thread_session_id;