diff options
Diffstat (limited to 'TAO/tao/TAO_Singleton_Manager.h')
-rw-r--r-- | TAO/tao/TAO_Singleton_Manager.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/TAO/tao/TAO_Singleton_Manager.h b/TAO/tao/TAO_Singleton_Manager.h index 3cb90214779..9611ceb7f81 100644 --- a/TAO/tao/TAO_Singleton_Manager.h +++ b/TAO/tao/TAO_Singleton_Manager.h @@ -29,12 +29,19 @@ #include "ace/OS.h" -// Adapter for cleanup, used to register cleanup function with the -// ACE_Object_Manager. + +#if defined (ACE_HAS_EXCEPTIONS) +typedef void (*TAO_unexpected_handler)(void); +#endif /* ACE_HAS_EXCEPTIONS */ + + +/// Adapter for cleanup, used to register cleanup function with the +/// ACE_Object_Manager. extern "C" void TAO_Singleton_Manager_cleanup_destroyer (void *, void *); + /** * @class TAO_Singleton_Manager * @@ -189,6 +196,19 @@ private: /// Lock that is used to guard internal structures. TAO_SYNCH_RECURSIVE_MUTEX *internal_lock_; #endif /* ACE_MT_SAFE */ + +#if defined (ACE_HAS_EXCEPTIONS) + /// The old unexpected exception handler. + /** + * A pointer to the old unexpected exception handler is stored so + * that it can be restored when TAO is unloaded, for example. + * Otherwise, any unexpected exceptions will result in a call to + * TAO's unexpected exception handler which may no longer exist if + * TAO was unloaded. + */ + TAO_unexpected_handler old_unexpected_; +#endif /* ACE_HAS_EXCEPTIONS */ + }; #if defined (__ACE_INLINE__) |