/usr/include/ace/Condition_T.cpp is in libace-dev 6.2.8+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | // $Id: Condition_T.cpp 96985 2013-04-11 15:50:32Z huangh $
#ifndef ACE_CONDITION_T_CPP
#define ACE_CONDITION_T_CPP
#include "ace/Condition_T.h"
#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
#if defined (ACE_HAS_THREADS)
#include "ace/Log_Category.h"
#if !defined (__ACE_INLINE__)
#include "ace/Condition_T.inl"
#include "ace/Time_Value.h"
#endif /* __ACE_INLINE__ */
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
ACE_ALLOC_HOOK_DEFINE(ACE_Condition)
template <class MUTEX> void
ACE_Condition<MUTEX>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
// ACE_TRACE ("ACE_Condition<MUTEX>::dump");
ACELIB_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
ACELIB_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
ACELIB_DEBUG ((LM_DEBUG, ACE_END_DUMP));
#endif /* ACE_HAS_DUMP */
}
template <class MUTEX>
ACE_Thread_Condition<MUTEX>::ACE_Thread_Condition (MUTEX &m,
const ACE_TCHAR *name,
void *arg)
: ACE_Condition<MUTEX> (m, USYNC_THREAD, name, arg)
{
// ACE_TRACE ("ACE_Thread_Condition<MUTEX>::ACE_Thread_Condition");
}
template <class MUTEX> void
ACE_Thread_Condition<MUTEX>::dump (void) const
{
#if defined (ACE_HAS_DUMP)
// ACE_TRACE ("ACE_Thread_Condition<MUTEX>::dump");
ACE_Condition<MUTEX>::dump ();
#endif /* ACE_HAS_DUMP */
}
template <class MUTEX>
ACE_Condition<MUTEX>::ACE_Condition (MUTEX &m,
int type,
const ACE_TCHAR *name,
void *arg)
:
mutex_ (m)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::ACE_Condition");
if (ACE_OS::cond_init (&this->cond_,
(short) type,
name,
arg) != 0)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("ACE_Condition::ACE_Condition")));
}
template <class MUTEX>
ACE_Condition<MUTEX>::ACE_Condition (MUTEX &m,
const ACE_Condition_Attributes &attributes,
const ACE_TCHAR *name,
void *arg)
: mutex_ (m)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::ACE_Condition<MUTEX>");
if (ACE_OS::cond_init (&this->cond_,
const_cast<ACE_condattr_t &> (attributes.attributes ()),
name, arg) != 0)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("ACE_Condition::ACE_Condition")));
}
template <class MUTEX>
ACE_Condition<MUTEX>::~ACE_Condition (void)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::~ACE_Condition");
if (this->remove () == -1)
ACELIB_ERROR ((LM_ERROR,
ACE_TEXT ("%p\n"),
ACE_TEXT ("ACE_Condition::~ACE_Condition")));
}
template <class MUTEX> int
ACE_Condition<MUTEX>::wait (void)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
return ACE_OS::cond_wait (&this->cond_,
&this->mutex_.lock ());
}
template <class MUTEX> int
ACE_Condition<MUTEX>::wait (MUTEX &mutex,
const ACE_Time_Value *abstime)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
if (abstime == 0)
{
return ACE_OS::cond_wait (&this->cond_,
&mutex.lock ());
}
else
{
ACE_Time_Value tv = *abstime;
return ACE_OS::cond_timedwait (&this->cond_,
&mutex.lock (),
&tv);
}
}
// Peform an "alertable" timed wait. If the argument ABSTIME == 0
// then we do a regular cond_wait(), else we do a timed wait for up to
// ABSTIME using the Solaris cond_timedwait() function.
template <class MUTEX> int
ACE_Condition<MUTEX>::wait (const ACE_Time_Value *abstime)
{
// ACE_TRACE ("ACE_Condition<MUTEX>::wait");
return this->wait (this->mutex_, abstime);
}
ACE_END_VERSIONED_NAMESPACE_DECL
#endif /* ACE_HAS_THREADS */
#endif /* ACE_CONDITION_T_CPP */
|