diff options
author | Ossama Othman <ossama-othman@users.noreply.github.com> | 2004-09-09 23:19:20 +0000 |
---|---|---|
committer | Ossama Othman <ossama-othman@users.noreply.github.com> | 2004-09-09 23:19:20 +0000 |
commit | a30d62642a36751609ef4b331b9ffccd997870f9 (patch) | |
tree | 2bfd43cca34b21d5ccdd8414d26480ce37f13d44 /TAO/tao/TAO_Singleton_Manager.h | |
parent | 1940c80f01ef5431a4e66c2faed46e14a2c0f31f (diff) | |
download | ATCD-a30d62642a36751609ef4b331b9ffccd997870f9.tar.gz |
ChangeLogTag:Thu Sep 9 16:16:48 2004 Ossama Othman <ossama@dre.vanderbilt.edu>
Diffstat (limited to 'TAO/tao/TAO_Singleton_Manager.h')
-rw-r--r-- | TAO/tao/TAO_Singleton_Manager.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/TAO/tao/TAO_Singleton_Manager.h b/TAO/tao/TAO_Singleton_Manager.h index 079f27eaebf..891a31ebf0e 100644 --- a/TAO/tao/TAO_Singleton_Manager.h +++ b/TAO/tao/TAO_Singleton_Manager.h @@ -28,6 +28,10 @@ #include "tao/orbconf.h" #include "ace/Object_Manager_Base.h" +#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. @@ -145,6 +149,17 @@ public: ACE_CLEANUP_FUNC cleanup_hook, void *param); +#if defined (ACE_HAS_EXCEPTIONS) + /// Set a new unexpected exception handler. + /** + * The old one will be stored for restoration later on. + * + * @note Calling this method multiple times will cause the stored + * old unexpected exception handler pointer to be lost. + */ + void _set_unexpected (TAO_unexpected_handler u); +#endif /* ACE_HAS_EXCEPTIONS */ + private: /// Force allocation on the heap. //@{ @@ -187,6 +202,17 @@ private: 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__) |