mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge
This commit is contained in:
@ -868,6 +868,7 @@ void kill_delayed_threads(void)
|
||||
delayed_insert *tmp;
|
||||
while ((tmp=it++))
|
||||
{
|
||||
/* Ensure that the thread doesn't kill itself while we are looking at it */
|
||||
pthread_mutex_lock(&tmp->mutex);
|
||||
tmp->thd.killed=1;
|
||||
if (tmp->thd.mysys_var)
|
||||
@ -875,9 +876,15 @@ void kill_delayed_threads(void)
|
||||
pthread_mutex_lock(&tmp->thd.mysys_var->mutex);
|
||||
if (tmp->thd.mysys_var->current_cond)
|
||||
{
|
||||
pthread_mutex_lock(tmp->thd.mysys_var->current_mutex);
|
||||
/*
|
||||
We need the following test because the main mutex may be locked
|
||||
in handle_delayed_insert()
|
||||
*/
|
||||
if (&tmp->mutex != tmp->thd.mysys_var->current_mutex)
|
||||
pthread_mutex_lock(tmp->thd.mysys_var->current_mutex);
|
||||
pthread_cond_broadcast(tmp->thd.mysys_var->current_cond);
|
||||
pthread_mutex_unlock(tmp->thd.mysys_var->current_mutex);
|
||||
if (&tmp->mutex != tmp->thd.mysys_var->current_mutex)
|
||||
pthread_mutex_unlock(tmp->thd.mysys_var->current_mutex);
|
||||
}
|
||||
pthread_mutex_unlock(&tmp->thd.mysys_var->mutex);
|
||||
}
|
||||
|
Reference in New Issue
Block a user