#include <MutexNSPR.h>
Public Methods | |
| MutexNSPR () | |
| Constructor. More... | |
| ~MutexNSPR () | |
| Destructor. More... | |
| vpr::ReturnStatus | acquire () |
| Locks this mutex. More... | |
| vpr::ReturnStatus | acquireRead () |
| Acquires a read lock. More... | |
| vpr::ReturnStatus | acquireWrite () |
| Acquires a write lock. More... | |
| vpr::ReturnStatus | tryAcquire () |
| Tries to acquire a lock on this mutex (does not block). More... | |
| vpr::ReturnStatus | tryAcquireRead () |
| Tries to acquire a read lock (does not block). More... | |
| vpr::ReturnStatus | tryAcquireWrite () |
| Tries to acquire a write lock (does not block). More... | |
| vpr::ReturnStatus | release () |
| Releases the mutex. More... | |
| int | test () const |
| Tests the current lock status. More... | |
Protected Methods | |
| MutexNSPR & | operator= (const MutexNSPR &r) |
| MutexNSPR (const MutexNSPR &) | |
Protected Attributes | |
| PRLock * | mMutex |
| Mutex variable for the class. More... | |
| int | mLocked |
Friends | |
| class | CondVarNSPR |
Definition at line 69 of file MutexNSPR.h.
|
|
Constructor.
Definition at line 79 of file MutexNSPR.h. References vprASSERT.
|
|
|
Destructor.
Definition at line 92 of file MutexNSPR.h.
00093 {
00094 PR_DestroyLock(mMutex);
00095 }
|
|
|
Definition at line 267 of file MutexNSPR.h.
00268 {
00269 /* Do nothing. */ ;
00270 }
|
|
|
Locks this mutex.
Definition at line 108 of file MutexNSPR.h.
00109 {
00110 PR_Lock(mMutex);
00111 mLocked = 1;
00112
00113 return vpr::ReturnStatus();
00114 }
|
|
|
Acquires a read lock.
Definition at line 130 of file MutexNSPR.h.
00131 {
00132 return this->acquire();
00133 }
|
|
|
Acquires a write lock.
Definition at line 149 of file MutexNSPR.h.
00150 {
00151 return this->acquire();
00152 }
|
|
|
Tries to acquire a lock on this mutex (does not block).
Definition at line 166 of file MutexNSPR.h. References vpr::ReturnStatus::Fail.
00167 {
00168 // XXX: Possible race condition exists in this function implementation
00169 if ( mLocked == 0 )
00170 {
00171 this->acquire();
00172 return vpr::ReturnStatus();
00173 }
00174 else
00175 {
00176 return vpr::ReturnStatus(vpr::ReturnStatus::Fail);
00177 }
00178 }
|
|
|
Tries to acquire a read lock (does not block).
Definition at line 192 of file MutexNSPR.h.
00193 {
00194 return this->tryAcquire();
00195 }
|
|
|
Tries to acquire a write lock (does not block).
Definition at line 209 of file MutexNSPR.h.
00210 {
00211 return this->tryAcquire();
00212 }
|
|
|
Releases the mutex.
Definition at line 223 of file MutexNSPR.h. References vpr::ReturnStatus::Fail.
00224 {
00225 mLocked = 0;
00226 if ( PR_Unlock(mMutex) == PR_SUCCESS )
00227 {
00228 return vpr::ReturnStatus();
00229 }
00230 else
00231 {
00232 return vpr::ReturnStatus(vpr::ReturnStatus::Fail);
00233 }
00234 }
|
|
|
Tests the current lock status.
Definition at line 245 of file MutexNSPR.h.
00246 {
00247 return mLocked;
00248 }
|
|
|
Definition at line 260 of file MutexNSPR.h.
|
|
|
Definition at line 253 of file MutexNSPR.h. |
|
|
Mutex variable for the class.
Definition at line 256 of file MutexNSPR.h. |
|
|
Definition at line 257 of file MutexNSPR.h. |
1.2.14 written by Dimitri van Heesch,
© 1997-2002