diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2009-01-15 07:57:27 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2009-01-15 07:57:27 +0000 |
commit | 7bcf346410d13a031025bcdeb87c4bed4bc4dd5a (patch) | |
tree | 9f76a93c1df2e2eb8387f634b70d1df6aec721a6 /ACE/ace/Singleton.cpp | |
parent | 903a1678de138d6dbb4711be1decb816ab86bb88 (diff) | |
download | ATCD-7bcf346410d13a031025bcdeb87c4bed4bc4dd5a.tar.gz |
Thu Jan 15 07:56:02 UTC 2009 Johnny Willemsen <jwillemsen@remedy.nl>
* ace/Cleanup.{h,cpp}:
Added a const char* name member to ACE_Cleanup_Info_Node, this
can be passed in when registering an at_exit hook. This string can
then be used during debugging to detect problems at shutdown. It
can happen that the cleanup hook is from a dll that already is
unloaded and then we get a crash with no information, the string
at least can tell us which hook we are calling. This fixes bugzilla
3544.
* ace/Log_Msg.cpp:
* ace/Object_Manager.{h,cpp,inl}:
* ace/Object_Manager_Base.{h,cpp}:
* ace/OS_NS_stdlib.{h,inl}:
* ace/Process_Manager.cpp:
* ace/Singleton.cpp:
* ace/Token_Invariants.cpp:
* ace/Token_Manager.cpp:
Pass in the typeid of the object when registering an at_exit hook
* ace/Thread.cpp:
Moved local variable inside the loop
Diffstat (limited to 'ACE/ace/Singleton.cpp')
-rw-r--r-- | ACE/ace/Singleton.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ACE/ace/Singleton.cpp b/ACE/ace/Singleton.cpp index b59213eaf1b..7767b51a6b3 100644 --- a/ACE/ace/Singleton.cpp +++ b/ACE/ace/Singleton.cpp @@ -17,12 +17,12 @@ #include "ace/Log_Msg.h" #include "ace/Framework_Component.h" #include "ace/Guard_T.h" +#include "ace/os_include/os_typeinfo.h" ACE_RCSID (ace, Singleton, "$Id$") - ACE_BEGIN_VERSIONED_NAMESPACE_DECL template <class TYPE, class ACE_LOCK> void @@ -95,7 +95,7 @@ ACE_Singleton<TYPE, ACE_LOCK>::instance (void) ACE_NEW_RETURN (singleton, (ACE_Singleton<TYPE, ACE_LOCK>), 0); // Register for destruction with ACE_Object_Manager. - ACE_Object_Manager::at_exit (singleton); + ACE_Object_Manager::at_exit (singleton, 0, typeid (TYPE).name ()); #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) } #endif /* ACE_MT_SAFE */ @@ -282,7 +282,7 @@ ACE_TSS_Singleton<TYPE, ACE_LOCK>::instance (void) 0); // Register for destruction with ACE_Object_Manager. - ACE_Object_Manager::at_exit (singleton); + ACE_Object_Manager::at_exit (singleton, 0, typeid (TYPE).name ()); #if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) } #endif /* ACE_MT_SAFE */ |