diff options
Diffstat (limited to 'TAO/tao/ORB_Core.i')
-rw-r--r-- | TAO/tao/ORB_Core.i | 15 |
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 { |