summaryrefslogtreecommitdiff
path: root/TAO/tao/ORB_Core.i
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/ORB_Core.i')
-rw-r--r--TAO/tao/ORB_Core.i15
1 files changed, 15 insertions, 0 deletions
diff --git a/TAO/tao/ORB_Core.i b/TAO/tao/ORB_Core.i
index 76be478d42a..7f9170af8dd 100644
--- a/TAO/tao/ORB_Core.i
+++ b/TAO/tao/ORB_Core.i
@@ -339,6 +339,21 @@ TAO_ORB_Core::has_shutdown (void)
return this->has_shutdown_;
}
+ACE_INLINE void
+TAO_ORB_Core::check_shutdown (ACE_ENV_SINGLE_ARG_DECL)
+{
+ if (this->has_shutdown ())
+ {
+ // As defined by the CORBA 2.3 specification, throw a
+ // CORBA::BAD_INV_ORDER exception with minor code 4 if the ORB
+ // has shutdown by the time an ORB function is called.
+
+ ACE_THROW (CORBA::BAD_INV_ORDER (CORBA::OMGVMCID | 4,
+ CORBA::COMPLETED_NO));
+ }
+}
+
+
ACE_INLINE int
TAO_ORB_Core::thread_per_connection_timeout (ACE_Time_Value &timeout) const
{