diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-04-10 18:27:37 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-04-10 18:27:37 +0000 |
commit | 7cba3b9030ee181e23f9d84ece2b6e418af131d7 (patch) | |
tree | 4348585264bd603d66e15d62a4d64e52c7c88350 | |
parent | bc5918ede1822e9a52d283ad03aa3fbe241ba7f3 (diff) | |
download | ATCD-7cba3b9030ee181e23f9d84ece2b6e418af131d7.tar.gz |
*** empty log message ***
-rw-r--r-- | ChangeLog-97a | 13 | ||||
-rw-r--r-- | ace/Service_Config.cpp | 10 | ||||
-rw-r--r-- | examples/Logger/simple-server/Logging_Acceptor.cpp | 10 |
3 files changed, 26 insertions, 7 deletions
diff --git a/ChangeLog-97a b/ChangeLog-97a index 22a0b1bb646..5bd1f06a001 100644 --- a/ChangeLog-97a +++ b/ChangeLog-97a @@ -1,3 +1,16 @@ +Thu Apr 10 00:34:10 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> + + * examples/Logger/simple-server/Logging_Acceptor.cpp + (handle_input): We need to call svc_handler->close() if accept() + or open() fails. Thanks to Ganesh Pai <gpai@voicetek.com> for + reporting this. + + * ace/Service_Config.cpp (close): Moved the call to + ACE_Service_Config::close_singletons() to outside the check for + ACE_Service_Config::svc_rep_ since the Singletons can be used + independently of the services. Thanks to Matthias Kerkhoff + <make@cs.tu-berlin.de> for suggesting this. + Wed Apr 9 21:11:38 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu> * apps/Gateway/Gateway/Gateway.cpp (handle_signal): Evil demons diff --git a/ace/Service_Config.cpp b/ace/Service_Config.cpp index d409ad467c8..7c4fd047675 100644 --- a/ace/Service_Config.cpp +++ b/ace/Service_Config.cpp @@ -734,11 +734,15 @@ ACE_Service_Config::close (void) { ACE_DEBUG ((LM_SHUTDOWN, "shutting down daemon %n\n")); - // ACE_Service_Config must be deleted first so that an object's - // fini() method may reference a valid ACE_Reactor. + // ACE_Service_Config must be deleted before the Singletons are + // closed so that an object's fini() method may reference a + // valid ACE_Reactor. ACE_Service_Config::close_svcs (); - ACE_Service_Config::close_singletons (); } + + // The Singletons can be used independently of the services. + // Therefore, this call must go out here. + ACE_Service_Config::close_singletons (); return 0; } diff --git a/examples/Logger/simple-server/Logging_Acceptor.cpp b/examples/Logger/simple-server/Logging_Acceptor.cpp index 714602fee40..c0e5a061bb7 100644 --- a/examples/Logger/simple-server/Logging_Acceptor.cpp +++ b/examples/Logger/simple-server/Logging_Acceptor.cpp @@ -56,10 +56,12 @@ Logging_Acceptor::handle_input (ACE_HANDLE) // Accept the connection from a client client daemon. - if (this->peer_acceptor_.accept (svc_handler->peer ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p", "accept failed"), -1); - else if (svc_handler->open () == -1) - svc_handler->close (); + if (this->peer_acceptor_.accept (svc_handler->peer ()) == -1 + || svc_handler->open () == -1) + { + svc_handler->close (); + ACE_ERROR_RETURN ((LM_ERROR, "%p", "accept/open failed"), -1); + } return 0; } |