mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Backport of the following revision from 6.0-codebase:
---------------------------------------------------------- revno: 2617.1.12 committer: kostja@bodhi.(none) timestamp: Sun 2008-04-20 11:18:52 +0400 message: A fix for Bug#32771 "events_bugs.test fails randomly". In Event_scheduler::stop(), which may be called from destructor, wait synchronously for the parallel Event_scheduler::stop() to complete before returning. This fixes a race between MySQL shutdown thread and the scheduler thread who could call stop() in parallel. sql/event_scheduler.cc: There was a race condition between the shutdown thread and the scheduler thread: the shutdown thread could delete the scheduler mutex before the sheduler has stopped.
This commit is contained in:
parent
99420dd913
commit
9a4a845adc
1 changed files with 5 additions and 0 deletions
|
|
@ -607,7 +607,12 @@ Event_scheduler::stop()
|
|||
LOCK_DATA();
|
||||
DBUG_PRINT("info", ("state before action %s", scheduler_states_names[state].str));
|
||||
if (state != RUNNING)
|
||||
{
|
||||
/* Synchronously wait until the scheduler stops. */
|
||||
while (state != INITIALIZED)
|
||||
COND_STATE_WAIT(thd, NULL, "Waiting for the scheduler to stop");
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* Guarantee we don't catch spurious signals */
|
||||
do {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue