diff options
Diffstat (limited to 'ace/Object_Manager.cpp')
-rw-r--r-- | ace/Object_Manager.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ace/Object_Manager.cpp b/ace/Object_Manager.cpp index b20e7e6619a..9567e59d5d2 100644 --- a/ace/Object_Manager.cpp +++ b/ace/Object_Manager.cpp @@ -6,6 +6,7 @@ #include "ace/Containers.h" #include "ace/Array.h" #include "ace/Service_Config.h" +#include "ace/Signal.h" #include "ace/Log_Msg.h" #include "ace/Token_Manager.h" #include "ace/Synch.h" @@ -31,6 +32,7 @@ # define ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS #endif /* ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS */ + // Static data. ACE_Object_Manager *ACE_Object_Manager::instance_ = 0; @@ -47,6 +49,8 @@ void *ACE_Object_Manager::preallocated_object[ void *ACE_Object_Manager::preallocated_array[ ACE_Object_Manager::ACE_PREALLOCATED_ARRAYS] = { 0 }; +ACE_Sig_Adapter *ace_service_config_sig_handler = 0; + // Handy macros for use by ACE_Object_Manager constructor to preallocate or // delete an object or array, either statically (in global data) or // dynamically (on the heap). @@ -126,6 +130,11 @@ ACE_Object_Manager::ACE_Object_Manager (void) ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS + // Construct the ACE_Service_Config's signal handler. + ACE_NEW (ace_service_config_sig_handler, + ACE_Sig_Adapter (&ACE_Service_Config::handle_signal)); + ACE_Service_Config::signal_handler (ace_service_config_sig_handler); + #if defined (ACE_HAS_TSS_EMULATION) // Initialize the main thread's TS storage. ACE_TSS_Emulation::tss_open (ts_storage_); @@ -501,6 +510,9 @@ ACE_Object_Manager::~ACE_Object_Manager (void) // Close down Winsock (no-op on other platforms). ACE_OS::socket_fini (); + delete ace_service_config_sig_handler; + ace_service_config_sig_handler = 0; + ACE_MT (delete lock_; lock_ = 0); |