Fix mem leak in idle threads

pull/2399/head
Valentin Rakush 7 years ago
parent c50fed4c9f
commit 5e8a2a7e3f

@ -3252,7 +3252,8 @@ void MySQL_Threads_Handler::init(unsigned int num, size_t stack) {
assert(rc==0);
mysql_threads=(proxysql_mysql_thread_t *)calloc(num_threads,sizeof(proxysql_mysql_thread_t));
#ifdef IDLE_THREADS
mysql_threads_idles=(proxysql_mysql_thread_t *)calloc(num_threads,sizeof(proxysql_mysql_thread_t));
if (GloVars.global.idle_threads)
mysql_threads_idles=(proxysql_mysql_thread_t *)calloc(num_threads,sizeof(proxysql_mysql_thread_t));
#endif // IDLE_THREADS
}
@ -3264,9 +3265,11 @@ proxysql_mysql_thread_t * MySQL_Threads_Handler::create_thread(unsigned int tn,
}
#ifdef IDLE_THREADS
} else {
if (pthread_create(&mysql_threads_idles[tn].thread_id, &attr, start_routine , &mysql_threads_idles[tn]) != 0) {
proxy_error("Thread creation\n");
assert(0);
if (GloVars.global.idle_threads) {
if (pthread_create(&mysql_threads_idles[tn].thread_id, &attr, start_routine , &mysql_threads_idles[tn]) != 0) {
proxy_error("Thread creation\n");
assert(0);
}
}
#endif // IDLE_THREADS
}
@ -5550,7 +5553,7 @@ SQLite3_result * MySQL_Threads_Handler::SQL3_Processlist() {
thr=(MySQL_Thread *)mysql_threads[i].worker;
#ifdef IDLE_THREADS
} else {
if (mysql_thread___session_idle_show_processlist && mysql_threads_idles) {
if (GloVars.global.idle_threads && mysql_thread___session_idle_show_processlist && mysql_threads_idles) {
thr=(MySQL_Thread *)mysql_threads_idles[i-num_threads].worker;
}
#endif // IDLE_THREADS

Loading…
Cancel
Save