#include <Local_Tokens.h>
Inheritance diagram for ACE_Local_RLock:
Public Member Functions | |
ACE_Local_RLock (const ACE_TCHAR *token_name=0, int ignore_deadlock=0, int debug=0) | |
~ACE_Local_RLock (void) | |
Destructor. | |
void | dump (void) const |
Dump the state of the class. | |
virtual int | type (void) const |
Returns ACE_RW_Token::RLOCK. | |
virtual ACE_Token_Proxy * | clone (void) const |
Return deep copy. | |
Protected Member Functions | |
virtual ACE_Tokens * | create_token (const ACE_TCHAR *name) |
Return a new ACE_Local_Mutex. |
This class implements the reader interface to canonical readers/writer locks. Multiple readers can hold the lock simultaneously when no writers have the lock. Alternatively, when a writer holds the lock, no other participants (readers or writers) may hold the lock. This class is a more general-purpose synchronization mechanism than SunOS 5.x RLocks. For example, it implements "recursive RLock" semantics, where a thread that owns the token can reacquire it without deadlocking. In addition, threads that are blocked awaiting the token are serviced in strict FIFO order as other threads release the token (SunOS 5.x RLockes don't strictly enforce an acquisition order). The interfaces for acquire, tryacquire, renew, release, etc. are defined in ACE_Token_Proxy. The semantics for ACE_Local_RLock are that of a readers/writers lock. Acquire for this class implies a reader acquisition. That is, multiple clients may acquire a lock for read only.
Definition at line 1024 of file Local_Tokens.h.
|
Constructor.
|
|
Destructor.
Definition at line 1548 of file Local_Tokens.cpp.
01549 { 01550 } |
|
Return deep copy.
Implements ACE_Token_Proxy. Definition at line 1569 of file Local_Tokens.cpp. References ACE_NEW_RETURN, and ACE_Tokens::name().
01570 { 01571 ACE_Token_Proxy *temp = 0; 01572 ACE_NEW_RETURN (temp, 01573 ACE_Local_RLock (token_->name (), 01574 ignore_deadlock_, 01575 debug_), 01576 0); 01577 return temp; 01578 } |
|
Return a new ACE_Local_Mutex.
Implements ACE_Token_Proxy. Definition at line 1553 of file Local_Tokens.cpp. References ACE_NEW_RETURN, and ACE_TCHAR.
01554 { 01555 ACE_Tokens *temp = 0; 01556 ACE_NEW_RETURN (temp, 01557 ACE_RW_Token (name), 01558 0); 01559 return temp; 01560 } |
|
Dump the state of the class.
Reimplemented from ACE_Token_Proxy. |
|
Returns ACE_RW_Token::RLOCK.
Reimplemented from ACE_Token_Proxy. Definition at line 1563 of file Local_Tokens.cpp.
01564 { 01565 return ACE_RW_Token::READER; 01566 } |