1 #include "tao/LF_Follower.h"
2 #include "tao/Leader_Follower.h"
4 #if !defined (__ACE_INLINE__)
5 # include "tao/LF_Follower.inl"
6 #endif /* __ACE_INLINE__ */
8 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
10 TAO_LF_Follower::TAO_LF_Follower (TAO_Leader_Follower
&leader_follower
)
11 : leader_follower_ (leader_follower
)
12 , condition_ (leader_follower
.lock ())
16 TAO_LF_Follower::~TAO_LF_Follower ()
21 TAO_LF_Follower::signal ()
23 // We *must* remove ourselves from the list of followers, otherwise
24 // we could get signaled twice: to wake up as a follower and as the
26 // The follower may not be there if the reply is received while
27 // the consumer is not yet waiting for it (i.e. it send the
28 // request but has not blocked to receive the reply yet).
30 (void) this->leader_follower_
.remove_follower (this);
32 return this->condition_
.signal ();
35 TAO_END_VERSIONED_NAMESPACE_DECL