mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Merge bodhi.local:/opt/local/work/mysql-5.0-runtime
into bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
This commit is contained in:
@@ -120,6 +120,19 @@ int my_sigwait(const sigset_t *set, int *sig)
|
||||
#endif
|
||||
|
||||
|
||||
void stop_all(Guardian_thread *guardian, Thread_registry *registry)
|
||||
{
|
||||
/*
|
||||
Let guardian thread know that it should break it's processing cycle,
|
||||
once it wakes up.
|
||||
*/
|
||||
guardian->request_shutdown();
|
||||
/* wake guardian */
|
||||
pthread_cond_signal(&guardian->COND_guardian);
|
||||
/* stop all threads */
|
||||
registry->deliver_shutdown();
|
||||
}
|
||||
|
||||
/*
|
||||
manager - entry point to the main instance manager process: start
|
||||
listener thread, write pid file and enter into signal handling.
|
||||
@@ -251,7 +264,6 @@ void manager()
|
||||
|
||||
/* Load instances. */
|
||||
|
||||
|
||||
{
|
||||
instance_map.guardian->lock();
|
||||
instance_map.lock();
|
||||
@@ -266,7 +278,8 @@ void manager()
|
||||
log_error("Cannot init instances repository. This might be caused by "
|
||||
"the wrong config file options. For instance, missing mysqld "
|
||||
"binary. Aborting.");
|
||||
return;
|
||||
stop_all(&guardian_thread, &thread_registry);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,6 +297,7 @@ void manager()
|
||||
if (rc)
|
||||
{
|
||||
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
|
||||
stop_all(&guardian_thread, &thread_registry);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
@@ -302,6 +316,7 @@ void manager()
|
||||
if ((status= my_sigwait(&mask, &signo)) != 0)
|
||||
{
|
||||
log_error("sigwait() failed");
|
||||
stop_all(&guardian_thread, &thread_registry);
|
||||
goto err;
|
||||
}
|
||||
|
||||
@@ -323,8 +338,7 @@ void manager()
|
||||
{
|
||||
if (!guardian_thread.is_stopped())
|
||||
{
|
||||
bool stop_instances= TRUE;
|
||||
guardian_thread.request_shutdown(stop_instances);
|
||||
guardian_thread.request_shutdown();
|
||||
pthread_cond_signal(&guardian_thread.COND_guardian);
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user