Fix for BUG#19391: IM fails to start after two executions

server-tools/instance-manager/manager.cc:
  Start Listener-thread after all initialization.
This commit is contained in:
unknown 2006-05-29 17:26:52 +04:00
parent 17dcb6e72c
commit 9b7258e1a2

View file

@ -147,28 +147,6 @@ void manager(const Options &options)
if (create_pid_file(options.pid_file_name, manager_pid))
return;
sigset_t mask;
set_signals(&mask);
/* create the listener */
{
pthread_t listener_thd_id;
pthread_attr_t listener_thd_attr;
int rc;
pthread_attr_init(&listener_thd_attr);
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
listener, &listener_args);
pthread_attr_destroy(&listener_thd_attr);
if (rc)
{
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
goto err;
}
}
/* create guardian thread */
{
pthread_t guardian_thd_id;
@ -211,6 +189,30 @@ void manager(const Options &options)
return;
}
/* Initialize signals and alarm-infrastructure. */
sigset_t mask;
set_signals(&mask);
/* create the listener */
{
pthread_t listener_thd_id;
pthread_attr_t listener_thd_attr;
int rc;
pthread_attr_init(&listener_thd_attr);
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
rc= set_stacksize_n_create_thread(&listener_thd_id, &listener_thd_attr,
listener, &listener_args);
pthread_attr_destroy(&listener_thd_attr);
if (rc)
{
log_error("manager(): set_stacksize_n_create_thread(listener) failed");
goto err;
}
}
/*
After the list of guarded instances have been initialized,
Guardian should start them.