00001 // -*- C++ -*- 00002 // 00003 // $Id: Thread_Mutex.inl 89127 2010-02-22 19:58:18Z schmidt $ 00004 00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 ACE_INLINE const ACE_thread_mutex_t & 00008 ACE_Thread_Mutex::lock (void) const 00009 { 00010 // ACE_TRACE ("ACE_Thread_Mutex::lock"); 00011 return this->lock_; 00012 } 00013 00014 ACE_INLINE ACE_thread_mutex_t & 00015 ACE_Thread_Mutex::lock (void) 00016 { 00017 // ACE_TRACE ("ACE_Thread_Mutex::lock"); 00018 return this->lock_; 00019 } 00020 00021 ACE_INLINE int 00022 ACE_Thread_Mutex::acquire_read (void) 00023 { 00024 // ACE_TRACE ("ACE_Thread_Mutex::acquire_read"); 00025 return ACE_OS::thread_mutex_lock (&this->lock_); 00026 } 00027 00028 ACE_INLINE int 00029 ACE_Thread_Mutex::acquire_write (void) 00030 { 00031 // ACE_TRACE ("ACE_Thread_Mutex::acquire_write"); 00032 return ACE_OS::thread_mutex_lock (&this->lock_); 00033 } 00034 00035 ACE_INLINE int 00036 ACE_Thread_Mutex::tryacquire_read (void) 00037 { 00038 // ACE_TRACE ("ACE_Thread_Mutex::tryacquire_read"); 00039 return ACE_OS::thread_mutex_trylock (&this->lock_); 00040 } 00041 00042 ACE_INLINE int 00043 ACE_Thread_Mutex::tryacquire_write (void) 00044 { 00045 // ACE_TRACE ("ACE_Thread_Mutex::tryacquire_write"); 00046 return ACE_OS::thread_mutex_trylock (&this->lock_); 00047 } 00048 00049 ACE_INLINE int 00050 ACE_Thread_Mutex::tryacquire_write_upgrade (void) 00051 { 00052 // ACE_TRACE ("ACE_Thread_Mutex::tryacquire_write_upgrade"); 00053 return 0; 00054 } 00055 00056 ACE_INLINE int 00057 ACE_Thread_Mutex::acquire (void) 00058 { 00059 // ACE_TRACE ("ACE_Thread_Mutex::acquire"); 00060 return ACE_OS::thread_mutex_lock (&this->lock_); 00061 } 00062 00063 ACE_INLINE int 00064 ACE_Thread_Mutex::acquire (ACE_Time_Value &tv) 00065 { 00066 // ACE_TRACE ("ACE_Thread_Mutex::acquire"); 00067 return ACE_OS::thread_mutex_lock (&this->lock_, tv); 00068 } 00069 00070 ACE_INLINE int 00071 ACE_Thread_Mutex::acquire (ACE_Time_Value *tv) 00072 { 00073 // ACE_TRACE ("ACE_Thread_Mutex::acquire"); 00074 return ACE_OS::thread_mutex_lock (&this->lock_, tv); 00075 } 00076 00077 ACE_INLINE int 00078 ACE_Thread_Mutex::tryacquire (void) 00079 { 00080 // ACE_TRACE ("ACE_Thread_Mutex::tryacquire"); 00081 return ACE_OS::thread_mutex_trylock (&this->lock_); 00082 } 00083 00084 ACE_INLINE int 00085 ACE_Thread_Mutex::release (void) 00086 { 00087 // ACE_TRACE ("ACE_Thread_Mutex::release"); 00088 return ACE_OS::thread_mutex_unlock (&this->lock_); 00089 } 00090 00091 ACE_INLINE int 00092 ACE_Thread_Mutex::remove (void) 00093 { 00094 // ACE_TRACE ("ACE_Thread_Mutex::remove"); 00095 int result = 0; 00096 if (!this->removed_) 00097 { 00098 this->removed_ = true; 00099 result = ACE_OS::thread_mutex_destroy (&this->lock_); 00100 } 00101 return result; 00102 } 00103 00104 ACE_END_VERSIONED_NAMESPACE_DECL