diff options
Diffstat (limited to 'ACE/ace/Service_Config.cpp')
-rw-r--r-- | ACE/ace/Service_Config.cpp | 18 |
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; } |