summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'server-tools/instance-manager/manager.cc')
-rw-r--r--server-tools/instance-manager/manager.cc22
1 files changed, 16 insertions, 6 deletions
diff --git a/server-tools/instance-manager/manager.cc b/server-tools/instance-manager/manager.cc
index a42a25eadf3..3ecd5fbc0d0 100644
--- a/server-tools/instance-manager/manager.cc
+++ b/server-tools/instance-manager/manager.cc
@@ -162,12 +162,12 @@ void manager(const Options &options)
pthread_attr_init(&listener_thd_attr);
pthread_attr_setdetachstate(&listener_thd_attr, PTHREAD_CREATE_DETACHED);
- rc= pthread_create(&listener_thd_id, &listener_thd_attr, listener,
- &listener_args);
+ 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(): pthread_create(listener) failed");
+ log_error("manager(): set_stacksize_n_create_thread(listener) failed");
goto err;
}
@@ -187,12 +187,12 @@ void manager(const Options &options)
pthread_attr_init(&guardian_thd_attr);
pthread_attr_setdetachstate(&guardian_thd_attr, PTHREAD_CREATE_DETACHED);
- rc= pthread_create(&guardian_thd_id, &guardian_thd_attr, guardian,
- &guardian_thread);
+ rc= set_stacksize_n_create_thread(&guardian_thd_id, &guardian_thd_attr,
+ guardian, &guardian_thread);
pthread_attr_destroy(&guardian_thd_attr);
if (rc)
{
- log_error("manager(): pthread_create(guardian) failed");
+ log_error("manager(): set_stacksize_n_create_thread(guardian) failed");
goto err;
}
@@ -231,6 +231,16 @@ void manager(const Options &options)
}
#ifndef __WIN__
+/*
+ On some Darwin kernels SIGHUP is delivered along with most
+ signals. This is why we skip it's processing on these
+ platforms. For more details and test program see
+ Bug #14164 IM tests fail on MacOS X (powermacg5)
+*/
+#ifdef IGNORE_SIGHUP_SIGQUIT
+ if ( SIGHUP == signo )
+ continue;
+#endif
if (THR_SERVER_ALARM == signo)
process_alarm(signo);
else