summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriliyan <iliyan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-08 22:23:09 +0000
committeriliyan <iliyan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-08 22:23:09 +0000
commit1ba3c12497ef4de1ecec17e19ebc0deec8626608 (patch)
tree93e0784c50766227dd8cdc1f8f7f76f82a820cff
parentb3daf81a1d96ceaf765adc3fbba23deaea7d90d3 (diff)
downloadATCD-1ba3c12497ef4de1ecec17e19ebc0deec8626608.tar.gz
ChangeLogTag: Wed Nov 8 22:12:46 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com>
-rw-r--r--ACE/ChangeLog16
-rw-r--r--ACE/ace/Service_Config.cpp25
-rw-r--r--ACE/ace/Service_Gestalt.cpp4
3 files changed, 27 insertions, 18 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog
index 78c72b3dfaf..21358d19bfc 100644
--- a/ACE/ChangeLog
+++ b/ACE/ChangeLog
@@ -1,7 +1,19 @@
+Wed Nov 8 22:12:46 UTC 2006 Iliyan Jeliazkov <iliyan@ociweb.com>
+
+ * ace/Service_Config.cpp:
+ * ace/Service_Gestalt.cpp:
+
+ This resolves a problem with shutting down the Service
+ Configurator via the static ACE_Service_Config::close () method,
+ where the registered services' fini() methods were not being
+ called. For full details, see bugzilla# 2701. Thanks to Aaron
+ Scamehorn <Aaron dot Scamehorn at cogcap dot com> for discovering
+ it an providing a test case.
+
Wed Nov 8 19:21:17 UTC 2006 William R. Otte <wotte@dre.vanderbilt.edu>
* bin/make_release:
-
+
Updates to the release script to work with Subversion.
Mon Nov 6 16:07:43 UTC 2006 Douglas C. Schmidt <schmidt@dre.vanderbilt.edu>
@@ -74,7 +86,6 @@ Tue Nov 7 07:52:12 UTC 2006 Johnny Willemsen <jwillemsen@remedy.nl>
* include/makeinclude/platform_rtems.x_g++.GNU:
Removed -ansi
->>>>>>> .r75251
Tue Nov 7 01:47:46 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
* ace/Sock_Connect.cpp (count_interfaces):
@@ -101,7 +112,6 @@ Mon Nov 6 16:52:14 UTC 2006 Phil Mesnier <mesnier_p@ociweb.com>
the footprint and improves performance by eliminating the
effectively duplicated code in count_interfaces().
->>>>>>> .r75238
Mon Nov 06 14:14:10 UTC 2006 Martin Corino <mcorino@remedy.nl>
* ace/config-vxworks6.3.h:
diff --git a/ACE/ace/Service_Config.cpp b/ACE/ace/Service_Config.cpp
index 07c7ea36006..3ceb1ebd9f7 100644
--- a/ACE/ace/Service_Config.cpp
+++ b/ACE/ace/Service_Config.cpp
@@ -89,10 +89,10 @@ ACE_Service_Config::parse_args_i (int argc, ACE_TCHAR *argv[])
{
ACE_TRACE ("ACE_Service_Config::parse_args_i");
- // Using PERMUTE_ARGS (default) in order to have all
- // unrecognized options and their value arguments moved
- // to the end of the argument vector. We'll pick them up
- // after processing our options and pass them on to the
+ // Using PERMUTE_ARGS (default) in order to have all
+ // unrecognized options and their value arguments moved
+ // to the end of the argument vector. We'll pick them up
+ // after processing our options and pass them on to the
// base class for further parsing.
ACE_Get_Opt getopt (argc,
argv,
@@ -101,7 +101,7 @@ ACE_Service_Config::parse_args_i (int argc, ACE_TCHAR *argv[])
0, // Do not report errors
ACE_Get_Opt::RETURN_IN_ORDER);
- // Keep a list of all unknown arguments, begin with the
+ // Keep a list of all unknown arguments, begin with the
// executable's name
ACE_ARGV superargv;
superargv.add (argv[0]);
@@ -140,7 +140,7 @@ ACE_Service_Config::parse_args_i (int argc, ACE_TCHAR *argv[])
for (int c = getopt.opt_ind (); c < argc; c++)
superargv.add (argv[c-1]);
- return ACE_Service_Gestalt::parse_args_i (superargv.argc (),
+ return ACE_Service_Gestalt::parse_args_i (superargv.argc (),
superargv.argv ());
} /* parse_args_i () */
@@ -338,7 +338,7 @@ ACE_Service_Config::impl_ (void)
TSS_Service_Gestalt_Ptr,
0);
}
-
+
return instance_;
}
@@ -450,9 +450,6 @@ ACE_Service_Config::ACE_Service_Config (int ignore_static_svcs,
ACE_Service_Config::signum_ = signum;
- // Initialize the Service Repository.
- // ACE_Service_Repository::instance (static_cast<int> (size));
-
// Make sure ACE_OS_Object_Manager is initialized.
(void)ACE_OS_Object_Manager::instance ();
@@ -582,7 +579,13 @@ ACE_Service_Config::reconfigure (void)
int
ACE_Service_Config::close (void)
{
- return ACE_Service_Config::current ()->close ();
+ int result1 = ACE_Service_Config::current ()->close ();
+
+ // Delete the service repository. All the objects inside the
+ // service repository should already have been finalized.
+ int result2 = ACE_Service_Config::close_svcs ();
+
+ return (result1 | result2);
}
int
diff --git a/ACE/ace/Service_Gestalt.cpp b/ACE/ace/Service_Gestalt.cpp
index 0c110a162ef..eeae45e785d 100644
--- a/ACE/ace/Service_Gestalt.cpp
+++ b/ACE/ace/Service_Gestalt.cpp
@@ -1251,10 +1251,6 @@ ACE_Service_Gestalt::close (void)
if (this->is_opened_ > 0)
return 0;
- // Delete the service repository. All the objects inside the
- // service repository should already have been finalized.
- // ACE_Service_Config::close_svcs ();
-
// Delete the list fo svc.conf files
delete this->svc_conf_file_queue_;
this->svc_conf_file_queue_ = 0;