MDEV-5131 create_embedded_thd is not thread safe, libmysqld.

The emb_free_embedded_thd() has the thread-unsafe code
        so should be 'mutexed' also.
This commit is contained in:
Alexey Botchkov 2013-10-14 21:23:09 +05:00
parent c7db46a242
commit 4e243be509

View File

@ -416,11 +416,13 @@ int emb_unbuffered_fetch(MYSQL *mysql, char **row)
static void emb_free_embedded_thd(MYSQL *mysql)
{
THD *thd= (THD*)mysql->thd;
mysql_mutex_lock(&LOCK_thread_count);
thd->clear_data_list();
thread_count--;
thd->store_globals();
thd->unlink();
delete thd;
mysql_mutex_unlock(&LOCK_thread_count);
my_pthread_setspecific_ptr(THR_THD, 0);
mysql->thd=0;
}