#include <LF_Strategy.h>
Public Member Functions | |
virtual | ~TAO_LF_Strategy (void) |
Destructor. | |
virtual void | set_upcall_thread (TAO_Leader_Follower &)=0 |
The current thread will handle an upcall. | |
virtual int | set_event_loop_thread (ACE_Time_Value *max_wait_time, TAO_Leader_Follower &)=0 |
The current thread is entering the reactor event loop. | |
virtual void | reset_event_loop_thread (int call_reset, TAO_Leader_Follower &)=0 |
The current thread is leaving the event loop. |
The ORB event loop must participate in the Leader/Followers protocol, but only if that concurrency model is configured, otherwise performance suffers.
This class strategizes the ORB behavior in this respect.
virtual TAO_LF_Strategy::~TAO_LF_Strategy | ( | void | ) | [virtual] |
Destructor.
virtual void TAO_LF_Strategy::reset_event_loop_thread | ( | int | call_reset, | |
TAO_Leader_Follower & | ||||
) | [pure virtual] |
The current thread is leaving the event loop.
When the thread leaves the event loop a new leader must be elected.
Implemented in TAO_LF_Strategy_Complete.
virtual int TAO_LF_Strategy::set_event_loop_thread | ( | ACE_Time_Value * | max_wait_time, | |
TAO_Leader_Follower & | ||||
) | [pure virtual] |
The current thread is entering the reactor event loop.
Threads that block in the reactor event loop become "server" threads for the Leader/Follower set. They must be flagged specially because they do not wait for one specific event, but for any event whatsoever.
Implemented in TAO_LF_Strategy_Complete.
virtual void TAO_LF_Strategy::set_upcall_thread | ( | TAO_Leader_Follower & | ) | [pure virtual] |
The current thread will handle an upcall.
Threads that handle requests can block for long periods of time, causing deadlocks if they don't elect a new leader before starting the upcall the system can become non-responsive or dead-lock.
Implemented in TAO_LF_Strategy_Complete.