00001 // -*- C++ -*- 00002 // 00003 // $Id: RW_Mutex.inl 69051 2005-10-28 16:14:56Z ossama $ 00004 00005 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 ACE_INLINE const ACE_rwlock_t & 00008 ACE_RW_Mutex::lock (void) const 00009 { 00010 // ACE_TRACE ("ACE_RW_Mutex::lock"); 00011 return this->lock_; 00012 } 00013 00014 ACE_INLINE int 00015 ACE_RW_Mutex::remove (void) 00016 { 00017 // ACE_TRACE ("ACE_RW_Mutex::remove"); 00018 int result = 0; 00019 if (this->removed_ == 0) 00020 { 00021 this->removed_ = 1; 00022 result = ACE_OS::rwlock_destroy (&this->lock_); 00023 } 00024 return result; 00025 } 00026 00027 ACE_INLINE int 00028 ACE_RW_Mutex::acquire_read (void) 00029 { 00030 // ACE_TRACE ("ACE_RW_Mutex::acquire_read"); 00031 return ACE_OS::rw_rdlock (&this->lock_); 00032 } 00033 00034 ACE_INLINE int 00035 ACE_RW_Mutex::acquire_write (void) 00036 { 00037 // ACE_TRACE ("ACE_RW_Mutex::acquire_write"); 00038 return ACE_OS::rw_wrlock (&this->lock_); 00039 } 00040 00041 ACE_INLINE int 00042 ACE_RW_Mutex::acquire (void) 00043 { 00044 // ACE_TRACE ("ACE_RW_Mutex::acquire"); 00045 return ACE_OS::rw_wrlock (&this->lock_); 00046 } 00047 00048 ACE_INLINE int 00049 ACE_RW_Mutex::tryacquire_read (void) 00050 { 00051 // ACE_TRACE ("ACE_RW_Mutex::tryacquire_read"); 00052 return ACE_OS::rw_tryrdlock (&this->lock_); 00053 } 00054 00055 ACE_INLINE int 00056 ACE_RW_Mutex::tryacquire_write (void) 00057 { 00058 // ACE_TRACE ("ACE_RW_Mutex::tryacquire_write"); 00059 return ACE_OS::rw_trywrlock (&this->lock_); 00060 } 00061 00062 ACE_INLINE int 00063 ACE_RW_Mutex::tryacquire_write_upgrade (void) 00064 { 00065 // ACE_TRACE ("ACE_RW_Mutex::tryacquire_write_upgrade"); 00066 return ACE_OS::rw_trywrlock_upgrade (&this->lock_); 00067 } 00068 00069 ACE_INLINE int 00070 ACE_RW_Mutex::tryacquire (void) 00071 { 00072 // ACE_TRACE ("ACE_RW_Mutex::tryacquire"); 00073 return this->tryacquire_write (); 00074 } 00075 00076 ACE_INLINE int 00077 ACE_RW_Mutex::release (void) 00078 { 00079 // ACE_TRACE ("ACE_RW_Mutex::release"); 00080 return ACE_OS::rw_unlock (&this->lock_); 00081 } 00082 00083 ACE_END_VERSIONED_NAMESPACE_DECL