00001 // -*- C++ -*- 00002 // 00003 // Recursive_Thread_Mutex.inl,v 4.4 2006/05/29 18:47:16 schmidt Exp 00004 00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 ACE_INLINE ACE_recursive_thread_mutex_t & 00008 ACE_Recursive_Thread_Mutex::mutex (void) 00009 { 00010 return lock_; 00011 } 00012 00013 ACE_INLINE ACE_thread_mutex_t & 00014 ACE_Recursive_Thread_Mutex::get_nesting_mutex (void) 00015 { 00016 #if defined (ACE_HAS_RECURSIVE_MUTEXES) 00017 return static_cast<ACE_thread_mutex_t &> (lock_); 00018 #else 00019 return lock_.nesting_mutex_; 00020 #endif /* ACE_HAS_RECURSIVE_MUTEXES */ 00021 } 00022 00023 ACE_INLINE void 00024 ACE_Recursive_Thread_Mutex::set_thread_id (ACE_thread_t t) 00025 { 00026 // ACE_TRACE ("ACE_Recursive_Thread_Mutex::set_thread_id"); 00027 #if defined (ACE_HAS_RECURSIVE_MUTEXES) 00028 ACE_UNUSED_ARG (t); 00029 #else /* ! ACE_HAS_RECURSIVE_MUTEXES */ 00030 this->lock_.owner_id_ = t; 00031 #endif /* ! ACE_HAS_RECURSIVE_MUTEXES */ 00032 } 00033 00034 ACE_INLINE int 00035 ACE_Recursive_Thread_Mutex::acquire (void) 00036 { 00037 return ACE_OS::recursive_mutex_lock (&this->lock_); 00038 } 00039 00040 ACE_INLINE int 00041 ACE_Recursive_Thread_Mutex::release (void) 00042 { 00043 return ACE_OS::recursive_mutex_unlock (&this->lock_); 00044 } 00045 00046 ACE_INLINE int 00047 ACE_Recursive_Thread_Mutex::tryacquire (void) 00048 { 00049 return ACE_OS::recursive_mutex_trylock (&this->lock_); 00050 } 00051 00052 ACE_INLINE int 00053 ACE_Recursive_Thread_Mutex::acquire (ACE_Time_Value &tv) 00054 { 00055 return ACE_OS::recursive_mutex_lock (&this->lock_, tv); 00056 } 00057 00058 ACE_INLINE int 00059 ACE_Recursive_Thread_Mutex::acquire (ACE_Time_Value *tv) 00060 { 00061 return ACE_OS::recursive_mutex_lock (&this->lock_, tv); 00062 } 00063 00064 ACE_INLINE int 00065 ACE_Recursive_Thread_Mutex::acquire_read (void) 00066 { 00067 return this->acquire (); 00068 } 00069 00070 ACE_INLINE int 00071 ACE_Recursive_Thread_Mutex::acquire_write (void) 00072 { 00073 return this->acquire (); 00074 } 00075 00076 ACE_INLINE int 00077 ACE_Recursive_Thread_Mutex::tryacquire_read (void) 00078 { 00079 return this->tryacquire (); 00080 } 00081 00082 ACE_INLINE int 00083 ACE_Recursive_Thread_Mutex::tryacquire_write (void) 00084 { 00085 return this->tryacquire (); 00086 } 00087 00088 ACE_INLINE int 00089 ACE_Recursive_Thread_Mutex::tryacquire_write_upgrade (void) 00090 { 00091 return 0; 00092 } 00093 00094 ACE_END_VERSIONED_NAMESPACE_DECL 00095