summaryrefslogtreecommitdiff
path: root/netsvcs
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2002-05-24 14:21:02 +0000
committerSteve Huston <shuston@riverace.com>2002-05-24 14:21:02 +0000
commit81d617f519bb9be2ab888ca3f33f12cc3f537877 (patch)
tree98579ce0223dae63481dd2bf14c58405b6c497a8 /netsvcs
parent6c0f3c1d4120806cd8a699ba49bf760f275c7f42 (diff)
downloadATCD-81d617f519bb9be2ab888ca3f33f12cc3f537877.tar.gz
ChangeLogTag:Mon May 13 19:15:49 2002 Steve Huston <shuston@riverace.com>
Diffstat (limited to 'netsvcs')
-rw-r--r--netsvcs/servers/main.cpp48
1 files changed, 30 insertions, 18 deletions
diff --git a/netsvcs/servers/main.cpp b/netsvcs/servers/main.cpp
index e39b0e23ebe..bd75b4e046f 100644
--- a/netsvcs/servers/main.cpp
+++ b/netsvcs/servers/main.cpp
@@ -14,22 +14,13 @@ ACE_RCSID(servers, main, "$Id$")
int
main (int argc, char *argv[])
{
- // Create an adapter to end the event loop.
- ACE_Sig_Adapter sa ((ACE_Sig_Handler_Ex) ACE_Reactor::end_event_loop);
-
- ACE_Sig_Set sig_set;
- sig_set.sig_add (SIGINT);
- sig_set.sig_add (SIGQUIT);
-
- // Register ourselves to receive signals so we can shut down
- // gracefully.
- if (ACE_Reactor::instance ()->register_handler (sig_set,
- &sa) == -1)
- ACE_ERROR_RETURN ((LM_ERROR,
- "%p\n"),
- -1);
// Try to link in the svc.conf entries dynamically.
+ //
+ // Warning - do not try to move the ACE_Reactor signal handling work
+ // up to before this call - if the user specified -b (be a daemon),
+ // all handles will be closed, including the Reactor's pipe.
+
if (ACE_Service_Config::open (argc, argv) == -1)
{
if (errno != ENOENT)
@@ -132,8 +123,17 @@ main (int argc, char *argv[])
// Run forever, performing the configured services until we
// are shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
+ // Create an adapter to end the event loop.
+ ACE_Sig_Adapter sa ((ACE_Sig_Handler_Ex) ACE_Reactor::end_event_loop);
+
+ ACE_Sig_Set sig_set;
+ sig_set.sig_add (SIGINT);
+ sig_set.sig_add (SIGQUIT);
+ if (ACE_Reactor::instance ()->register_handler (sig_set,
+ &sa) == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n")));
+ else
+ ACE_Reactor::run_event_loop ();
// Destructors of ACE_Service_Object_Ptr's automagically
// call fini().
@@ -147,8 +147,20 @@ main (int argc, char *argv[])
// Run forever, performing the configured services until we are
// shut down by a SIGINT/SIGQUIT signal.
-
- ACE_Reactor::run_event_loop ();
+ // Create an adapter to end the event loop.
+ ACE_Sig_Adapter sa ((ACE_Sig_Handler_Ex) ACE_Reactor::end_event_loop);
+
+ ACE_Sig_Set sig_set;
+ sig_set.sig_add (SIGINT);
+ sig_set.sig_add (SIGQUIT);
+
+ // Register ourselves to receive signals so we can shut down
+ // gracefully.
+ if (ACE_Reactor::instance ()->register_handler (sig_set,
+ &sa) == -1)
+ ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n")));
+ else
+ ACE_Reactor::run_event_loop ();
}
return 0;