Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / Wait_On_LF_No_Upcall.cpp
blob6009312c71455a281b4b3043fc8f223cb061d8ed
1 #include "tao/Wait_On_LF_No_Upcall.h"
2 #include "tao/Nested_Upcall_Guard.h"
3 #include "tao/Leader_Follower.h"
5 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
7 namespace TAO
9 Wait_On_LF_No_Upcall::Wait_On_LF_No_Upcall (TAO_Transport *t)
10 : TAO_Wait_On_Leader_Follower (t)
14 int
15 Wait_On_LF_No_Upcall::wait (ACE_Time_Value *max_wait_time,
16 TAO_Synch_Reply_Dispatcher &rd)
18 Nested_Upcall_Guard upcall_guard (this->transport_);
20 return TAO_Wait_On_Leader_Follower::wait (max_wait_time, rd);
23 bool
24 Wait_On_LF_No_Upcall::can_process_upcalls () const
26 if ((this->transport_->opened_as () == TAO::TAO_SERVER_ROLE) &&
27 (this->transport_->bidirectional_flag () == -1))
29 TAO_ORB_Core_TSS_Resources *tss =
30 this->transport_->orb_core ()->get_tss_resources ();
32 if (tss->upcalls_temporarily_suspended_on_this_thread_)
34 return false;
38 return true;
41 int
42 Wait_On_LF_No_Upcall::defer_upcall (ACE_Event_Handler* eh)
44 if (TAO_debug_level > 6)
45 TAOLIB_DEBUG ((LM_DEBUG,
46 "TAO (%P|%t) - Wait_On_LF_No_Upcall[%d]::defer_upcall, "
47 "deferring upcall on transport "
48 "because upcalls temporarily suspended on this thread\n",
49 this->transport_->id()));
50 return this->transport_->orb_core ()->leader_follower ().defer_event (eh);
55 TAO_END_VERSIONED_NAMESPACE_DECL