summaryrefslogtreecommitdiff
path: root/TAO/tao/TAO_Singleton_Manager.h
diff options
context:
space:
mode:
authorOssama Othman <ossama-othman@users.noreply.github.com>2004-09-09 23:19:20 +0000
committerOssama Othman <ossama-othman@users.noreply.github.com>2004-09-09 23:19:20 +0000
commita30d62642a36751609ef4b331b9ffccd997870f9 (patch)
tree2bfd43cca34b21d5ccdd8414d26480ce37f13d44 /TAO/tao/TAO_Singleton_Manager.h
parent1940c80f01ef5431a4e66c2faed46e14a2c0f31f (diff)
downloadATCD-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.h26
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__)