diff options
author | Steve Huston <shuston@riverace.com> | 2002-05-24 14:21:02 +0000 |
---|---|---|
committer | Steve Huston <shuston@riverace.com> | 2002-05-24 14:21:02 +0000 |
commit | 81d617f519bb9be2ab888ca3f33f12cc3f537877 (patch) | |
tree | 98579ce0223dae63481dd2bf14c58405b6c497a8 /netsvcs | |
parent | 6c0f3c1d4120806cd8a699ba49bf760f275c7f42 (diff) | |
download | ATCD-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.cpp | 48 |
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; |