3 // $Id: Condition_T.inl 80826 2008-03-04 14:51:23Z wotte $
5 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
7 template<class MUTEX> ACE_INLINE int
8 ACE_Condition<MUTEX>::remove (void)
10 // ACE_TRACE ("ACE_Condition<MUTEX>::remove");
12 // cond_destroy() is called in a loop if the condition variable is
13 // BUSY. This avoids a condition where a condition is signaled and
14 // because of some timing problem, the thread that is to be signaled
15 // has called the cond_wait routine after the signal call. Since
16 // the condition signal is not queued in any way, deadlock occurs.
20 while ((result = ACE_OS::cond_destroy (&this->cond_)) == -1
23 ACE_OS::cond_broadcast (&this->cond_);
30 template<class MUTEX> ACE_INLINE MUTEX &
31 ACE_Condition<MUTEX>::mutex (void)
33 // ACE_TRACE ("ACE_Condition<MUTEX>::mutex");
37 template <class MUTEX> ACE_INLINE int
38 ACE_Condition<MUTEX>::signal (void)
40 // ACE_TRACE ("ACE_Condition<MUTEX>::signal");
41 return ACE_OS::cond_signal (&this->cond_);
44 template <class MUTEX> ACE_INLINE int
45 ACE_Condition<MUTEX>::broadcast (void)
47 // ACE_TRACE ("ACE_Condition<MUTEX>::broadcast");
48 return ACE_OS::cond_broadcast (&this->cond_);
51 ACE_END_VERSIONED_NAMESPACE_DECL