summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/manager.cc
diff options
context:
space:
mode:
authorpetr@mysql.com <>2005-02-11 14:21:59 +0300
committerpetr@mysql.com <>2005-02-11 14:21:59 +0300
commit6b50b5b087d83c28058f9adee099bcb761142b7a (patch)
tree5a46c104b5146373b9e754ea5691cfa5ef3d2fcf /server-tools/instance-manager/manager.cc
parent0eddb07ff7bab43de73b87a07e68bb40ab01b3f8 (diff)
downloadmariadb-git-6b50b5b087d83c28058f9adee099bcb761142b7a.tar.gz
Post-review fixes + some bugs fixed + several minor features
Diffstat (limited to 'server-tools/instance-manager/manager.cc')
-rw-r--r--server-tools/instance-manager/manager.cc26
1 files changed, 8 insertions, 18 deletions
diff --git a/server-tools/instance-manager/manager.cc b/server-tools/instance-manager/manager.cc
index b48c020786f..af8dac47dca 100644
--- a/server-tools/instance-manager/manager.cc
+++ b/server-tools/instance-manager/manager.cc
@@ -90,7 +90,6 @@ void manager(const Options &options)
sigemptyset(&mask);
sigaddset(&mask, SIGINT);
sigaddset(&mask, SIGTERM);
- sigaddset(&mask, SIGCHLD);
sigaddset(&mask, SIGPIPE);
sigaddset(&mask, SIGHUP);
/*
@@ -128,7 +127,7 @@ void manager(const Options &options)
int rc;
/*
- NOTE: Guardian should be shutdowned first. Only then all other threads
+ NOTE: Guardian should be shutdown first. Only then all other threads
need to be stopped. This should be done, as guardian is responsible for
shutting down the instances, and this is a long operation.
*/
@@ -160,12 +159,8 @@ void manager(const Options &options)
more then 10 alarms at the same time.
*/
init_thr_alarm(10);
- /*
- Now we can init the list of guarded instances. We have to do it after
- alarm structures initialization as we have to use net_* functions while
- making the list. And they in their turn need alarms for timeout suppport.
- */
- guardian_thread.start();
+ /* init list of guarded instances */
+ guardian_thread.init();
/*
After the list of guarded instances have been initialized,
Guardian should start them.
@@ -182,18 +177,12 @@ void manager(const Options &options)
case THR_SERVER_ALARM:
process_alarm(signo);
break;
- case SIGCHLD:
- wait(NULL);
- /* wake threads waiting for an instance to shutdown */
- pthread_cond_broadcast(&instance_map.pid_cond.COND_pid);
- /* wake guardian */
- pthread_cond_signal(&guardian_thread.COND_guardian);
- break;
default:
- if (!guardian_thread.is_stopped)
+ {
+ if (!guardian_thread.is_stopped())
{
- guardian_thread.request_stop_instances();
- guardian_thread.shutdown();
+ bool stop_instances= true;
+ guardian_thread.request_shutdown(stop_instances);
pthread_cond_signal(&guardian_thread.COND_guardian);
}
else
@@ -201,6 +190,7 @@ void manager(const Options &options)
thread_registry.deliver_shutdown();
shutdown_complete= TRUE;
}
+ }
break;
}
}