summaryrefslogtreecommitdiff
path: root/ACE/ace/Service_Config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/Service_Config.cpp')
-rw-r--r--ACE/ace/Service_Config.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/ACE/ace/Service_Config.cpp b/ACE/ace/Service_Config.cpp
index a44998d066c..81a8536cf02 100644
--- a/ACE/ace/Service_Config.cpp
+++ b/ACE/ace/Service_Config.cpp
@@ -21,6 +21,7 @@
#include "ace/OS_NS_unistd.h"
#include "ace/Get_Opt.h"
#include "ace/ARGV.h"
+#include "ace/Static_Object_Lock.h"
ACE_RCSID (ace,
Service_Config,
@@ -130,9 +131,9 @@ ACE_Service_Config::parse_args_i (int argc, ACE_TCHAR *argv[])
-1);
#endif /* ACE_LACKS_UNIX_SIGNALS */
break;
- }
default:
- superargv.add ( argv[getopt.opt_ind () - 1]);
+ superargv.add ( argv[getopt.opt_ind () - 1]);
+ }
}
// Collect any argumets that were left
@@ -325,19 +326,12 @@ ACE_Service_Config::impl_ (void)
static TSS_Service_Gestalt_Ptr * instance_ = 0;
- // We can't possibly rely on ACE_STATIC_OBJECT_LOCK or any other
- // object that may be managed by the Object Manager. It is very
- // likely we are called in a static initializer context, before the
- // ACE_Object_Manager has been instantiated. This of course only
- // matters for threaded environments.
- ACE_MT (static ACE_SYNCH_RECURSIVE_MUTEX guardian_);
-
if (instance_ == 0)
{
// TSS not initialized yet - first thread to hit this, so doing
// the double-checked locking thing
ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon,
- guardian_, 0));
+ *ACE_Static_Object_Lock::instance (), 0));
if (instance_ == 0)
ACE_NEW_RETURN (instance_,
@@ -452,6 +446,8 @@ ACE_Service_Config::ACE_Service_Config (int ignore_static_svcs,
{
ACE_TRACE ("ACE_Service_Config::ACE_Service_Config");
+ // this->no_static_svcs_ = (ignore_static_svcs);
+
ACE_Service_Config::signum_ = signum;
}
@@ -591,7 +587,7 @@ ACE_Service_Config::close_svcs (void)
ACE_TRACE ("ACE_Service_Config::close_svcs");
ACE_Service_Repository::close_singleton ();
- ACE_Service_Config::current (0);
+
return 0;
}