#include <RWMutexNSPR.h>
Public Methods | |
| RWMutexNSPR () | |
| ~RWMutexNSPR () | |
| vpr::ReturnStatus | acquire () |
| Locks the mutex. More... | |
| vpr::ReturnStatus | acquireRead () |
| Acquires a read mutex. More... | |
| vpr::ReturnStatus | acquireWrite () |
| Acquires a write mutex. More... | |
| vpr::ReturnStatus | tryAcquire () |
| Tries to acquire the mutex. More... | |
| vpr::ReturnStatus | tryAcquireRead () |
| Tries to acquire a read mutex. More... | |
| vpr::ReturnStatus | tryAcquireWrite () |
| Tries to acquire a write mutex. More... | |
| vpr::ReturnStatus | release () |
| Releases the mutex. More... | |
Protected Methods | |
| void | operator= (const RWMutexNSPR &) |
| RWMutexNSPR (const RWMutexNSPR &) | |
Protected Attributes | |
| int | numWaitingReaders |
| Number of waiting readers. More... | |
| int | numWaitingWriters |
| Number of waiting writers. More... | |
| int | mRefCount |
| PRRWLock * | mRwLock |
|
|
Definition at line 59 of file RWMutexNSPR.h.
|
|
|
Definition at line 65 of file RWMutexNSPR.h.
00066 {
00067 PR_DestroyRWLock(mRwLock);
00068 }
|
|
|
Definition at line 165 of file RWMutexNSPR.h.
00166 {
00167 /* Do nothing. */ ;
00168 }
|
|
|
Locks the mutex.
Definition at line 76 of file RWMutexNSPR.h.
00077 {
00078 return acquireWrite();
00079 }
|
|
|
Acquires a read mutex.
Definition at line 84 of file RWMutexNSPR.h.
00085 {
00086 PR_RWLock_Rlock(mRwLock);
00087 return vpr::ReturnStatus();
00088 }
|
|
|
Acquires a write mutex.
Definition at line 93 of file RWMutexNSPR.h.
00094 {
00095 PR_RWLock_Wlock(mRwLock);
00096 return vpr::ReturnStatus();
00097 }
|
|
|
Tries to acquire the mutex. Wait until the semaphore value is greater than 0. Then decrement by 1 and return. P operation.
Definition at line 109 of file RWMutexNSPR.h.
00110 {
00111 return tryAcquireWrite();
00112 }
|
|
|
Tries to acquire a read mutex.
Definition at line 50 of file RWMutexNSPR.cpp. References vpr::ReturnStatus::Fail.
00051 {
00052 vpr::ReturnStatus retVal(vpr::ReturnStatus::Fail);
00053
00054 /*
00055 if (stateLock.acquire().success())
00056 {
00057 if (mRefCount == -1 || numWaitingWriters >0)
00058 {
00059 retVal.setCode(vpr::ReturnStatus::Fail);
00060 }
00061 else
00062 {
00063 mRefCount++;
00064 retVal.setCode(vpr::ReturnStatus::Succeed);
00065 }
00066 stateLock.release();
00067 }
00068 */
00069 return retVal;
00070 }
|
|
|
Tries to acquire a write mutex.
Definition at line 72 of file RWMutexNSPR.cpp. References vpr::ReturnStatus::Fail.
00073 {
00074 vpr::ReturnStatus retVal(vpr::ReturnStatus::Fail);
00075
00076 /*
00077 if (stateLock.acquire().success())
00078 {
00079 if ( mRefCount == 0 )
00080 {
00081 mRefCount = -1;
00082 retVal.setCode(vpr::ReturnStatus::Succeed);
00083 }
00084 stateLock.release();
00085 }
00086 */
00087
00088 return retVal;
00089 }
|
|
|
Releases the mutex.
Definition at line 130 of file RWMutexNSPR.h.
00131 {
00132 PR_RWLock_Unlock(mRwLock);
00133 return vpr::ReturnStatus();
00134 }
|
|
|
Definition at line 160 of file RWMutexNSPR.h.
00161 {
00162 /* Do nothing. */ ;
00163 }
|
|
|
Number of waiting readers.
Definition at line 150 of file RWMutexNSPR.h. |
|
|
Number of waiting writers.
Definition at line 151 of file RWMutexNSPR.h. |
|
|
Definition at line 155 of file RWMutexNSPR.h. |
|
|
Definition at line 157 of file RWMutexNSPR.h. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002