summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-04-10 18:27:37 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-04-10 18:27:37 +0000
commit7cba3b9030ee181e23f9d84ece2b6e418af131d7 (patch)
tree4348585264bd603d66e15d62a4d64e52c7c88350
parentbc5918ede1822e9a52d283ad03aa3fbe241ba7f3 (diff)
downloadATCD-7cba3b9030ee181e23f9d84ece2b6e418af131d7.tar.gz
*** empty log message ***
-rw-r--r--ChangeLog-97a13
-rw-r--r--ace/Service_Config.cpp10
-rw-r--r--examples/Logger/simple-server/Logging_Acceptor.cpp10
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;
}