summaryrefslogtreecommitdiff
path: root/TAO/tao/PortableServer/Non_Servant_Upcall.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/tao/PortableServer/Non_Servant_Upcall.cpp')
-rw-r--r--TAO/tao/PortableServer/Non_Servant_Upcall.cpp92
1 files changed, 0 insertions, 92 deletions
diff --git a/TAO/tao/PortableServer/Non_Servant_Upcall.cpp b/TAO/tao/PortableServer/Non_Servant_Upcall.cpp
deleted file mode 100644
index c4ac484a1c5..00000000000
--- a/TAO/tao/PortableServer/Non_Servant_Upcall.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// $Id$
-
-#include "Non_Servant_Upcall.h"
-#include "Object_Adapter.h"
-#include "Root_POA.h"
-
-#if !defined (__ACE_INLINE__)
-# include "Non_Servant_Upcall.inl"
-#endif /* __ACE_INLINE__ */
-
-ACE_RCSID (PortableServer,
- Non_Servant_Upcall,
- "$Id$")
-
-namespace TAO
-{
- namespace Portable_Server
- {
- Non_Servant_Upcall::Non_Servant_Upcall (::TAO_Root_POA &poa)
- : object_adapter_ (poa.object_adapter ()),
- poa_ (poa),
- previous_ (0)
- {
- // Check if this is a nested non_servant_upcall.
- if (this->object_adapter_.non_servant_upcall_nesting_level_ != 0)
- {
- // Remember previous instance of non_servant_upcall.
- this->previous_ = this->object_adapter_.non_servant_upcall_in_progress_;
-
- // Assert that the thread is the same as the one before.
- ACE_ASSERT (ACE_OS::thr_equal (this->object_adapter_.non_servant_upcall_thread_,
- ACE_OS::thr_self ()));
- }
-
- // Remember which thread is calling the adapter activators.
- this->object_adapter_.non_servant_upcall_thread_ = ACE_OS::thr_self ();
-
- // Mark the fact that a non-servant upcall is in progress.
- this->object_adapter_.non_servant_upcall_in_progress_ = this;
-
- // Adjust the nesting level.
- this->object_adapter_.non_servant_upcall_nesting_level_++;
-
- // We always release
- this->object_adapter_.lock ().release ();
- }
-
- Non_Servant_Upcall::~Non_Servant_Upcall (void)
- {
- // Reacquire the Object Adapter lock.
- this->object_adapter_.lock ().acquire ();
-
- // Adjust the nesting level.
- this->object_adapter_.non_servant_upcall_nesting_level_--;
-
- // We are done with this nested upcall.
- this->object_adapter_.non_servant_upcall_in_progress_ = this->previous_;
-
- // If we are at the outer nested upcall.
- if (this->object_adapter_.non_servant_upcall_nesting_level_ == 0)
- {
- // Reset thread id.
- this->object_adapter_.non_servant_upcall_thread_ =
- ACE_OS::NULL_thread;
-
- // Check if all pending requests are over.
- if (this->poa_.waiting_destruction () &&
- this->poa_.outstanding_requests () == 0)
- {
- ACE_TRY_NEW_ENV
- {
- this->poa_.complete_destruction_i (ACE_ENV_SINGLE_ARG_PARAMETER);
- ACE_TRY_CHECK;
- }
- ACE_CATCHANY
- {
- // Ignore exceptions
- ACE_PRINT_EXCEPTION (ACE_ANY_EXCEPTION,
- "TAO_POA::complete_destruction_i");
- }
- ACE_ENDTRY;
- }
-
- // If locking is enabled.
- if (this->object_adapter_.enable_locking_)
- // Wakeup all waiting threads.
- this->object_adapter_.non_servant_upcall_condition_.broadcast ();
- }
- }
- }
-}
-