diff options
author | Francis Dupont <fdupont@isc.org> | 2016-10-01 18:44:02 +0200 |
---|---|---|
committer | Francis Dupont <fdupont@isc.org> | 2016-10-01 18:44:02 +0200 |
commit | 0985d149c60754feb41b34221f292de60d1ee80b (patch) | |
tree | 14555107d5c7a71b3936fddc1f6afa86b198fd9c /omapip/isclib.c | |
parent | 29b23207c05a7a0ec1a90d42dc4e49d47f9b1a7f (diff) | |
download | isc-dhcp-0985d149c60754feb41b34221f292de60d1ee80b.tar.gz |
Moved the call to isc_app_ctxstart() to not get signal block by all threads
Diffstat (limited to 'omapip/isclib.c')
-rw-r--r-- | omapip/isclib.c | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/omapip/isclib.c b/omapip/isclib.c index 12608a7b..781db848 100644 --- a/omapip/isclib.c +++ b/omapip/isclib.c @@ -185,21 +185,6 @@ dhcp_context_create(int flags, if (result != ISC_R_SUCCESS) goto cleanup; - result = isc_app_ctxstart(dhcp_gbl_ctx.actx); - if (result != ISC_R_SUCCESS) - return (result); - dhcp_gbl_ctx.actx_started = ISC_TRUE; - - /* Not all OSs support suppressing SIGPIPE through socket - * options, so set the sigal action to be ignore. This allows - * broken connections to fail gracefully with EPIPE on writes */ - handle_signal(SIGPIPE, SIG_IGN); - - /* Reset handlers installed by isc_app_ctxstart() - * to default for control-c and kill */ - handle_signal(SIGINT, SIG_DFL); - handle_signal(SIGTERM, SIG_DFL); - result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx, dhcp_gbl_ctx.actx, 1, 0, @@ -222,6 +207,21 @@ dhcp_context_create(int flags, result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task); if (result != ISC_R_SUCCESS) goto cleanup; + + result = isc_app_ctxstart(dhcp_gbl_ctx.actx); + if (result != ISC_R_SUCCESS) + return (result); + dhcp_gbl_ctx.actx_started = ISC_TRUE; + + /* Not all OSs support suppressing SIGPIPE through socket + * options, so set the sigal action to be ignore. This allows + * broken connections to fail gracefully with EPIPE on writes */ + handle_signal(SIGPIPE, SIG_IGN); + + /* Reset handlers installed by isc_app_ctxstart() + * to default for control-c and kill */ + handle_signal(SIGINT, SIG_DFL); + handle_signal(SIGTERM, SIG_DFL); } #if defined (NSUPDATE) |