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
9 Wait_On_LF_No_Upcall::Wait_On_LF_No_Upcall (TAO_Transport
*t
)
10 : TAO_Wait_On_Leader_Follower (t
)
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
);
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_
)
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