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/Process_Manager.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/Process_Manager.cpp')
-rw-r--r-- | ACE/ace/Process_Manager.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/ACE/ace/Process_Manager.cpp b/ACE/ace/Process_Manager.cpp index 773326da2c9..3599cfe15b5 100644 --- a/ACE/ace/Process_Manager.cpp +++ b/ACE/ace/Process_Manager.cpp @@ -19,6 +19,7 @@ #include "ace/OS_NS_signal.h" #include "ace/OS_NS_unistd.h" #include "ace/OS_NS_sys_time.h" +#include "ace/os_include/os_typeinfo.h" #include "ace/Truncate.h" ACE_RCSID (ace, @@ -131,11 +132,13 @@ ACE_Process_Manager::instance (void) #if defined ACE_HAS_SIG_C_FUNC ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_, ACE_Process_Manager_cleanup, - 0); + 0, + typeid (*ACE_Process_Manager::instance_).name ()); #else ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_, ACE_Process_Manager::cleanup, - 0); + 0, + typeid (*ACE_Process_Manager::instance_).name ()); #endif /* ACE_HAS_SIG_C_FUNC */ } @@ -162,11 +165,13 @@ ACE_Process_Manager::instance (ACE_Process_Manager *tm) #if defined ACE_HAS_SIG_C_FUNC ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_, ACE_Process_Manager_cleanup, - 0); + 0, + typeid (*ACE_Process_Manager::instance_).name ()); #else ACE_Object_Manager::at_exit (ACE_Process_Manager::instance_, ACE_Process_Manager::cleanup, - 0); + 0, + typeid (*ACE_Process_Manager::instance_).name ()); #endif /* ACE_HAS_SIG_C_FUNC */ ACE_Process_Manager::instance_ = tm; @@ -686,7 +691,7 @@ ACE_Process_Manager::find_proc (pid_t pid) { ACE_TRACE ("ACE_Process_Manager::find_proc"); - for (size_t i = 0; i < this->current_count_; ++i) + for (size_t i = 0; i < this->current_count_; ++i) { if (pid == this->process_table_[i].process_->getpid ()) { |