Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# ACE_RW_Process_Mutex Class Reference

Wrapper for readers/writer locks that exist across processes. More...

`#include <RW_Process_Mutex.h>`

Collaboration diagram for ACE_RW_Process_Mutex:

[legend]
List of all members.

## Public Methods
| ACE_RW_Process_Mutex (const ACE_TCHAR *name = 0, int flags = O_CREAT|O_RDWR)
| Create a readers/writer <Process_Mutex>, passing in the optional <name>. If not specified, a name is generated.
| ~ACE_RW_Process_Mutex (void)
int | remove (void)
int | acquire (void)
| Acquire lock ownership (wait on queue if necessary).
int | tryacquire (void)
int | release (void)
| Release lock and unblock a thread at head of queue.
int | acquire_read (void)
| Acquire lock ownership (wait on queue if necessary).
int | acquire_write (void)
| Acquire lock ownership (wait on queue if necessary).
int | tryacquire_read (void)
int | tryacquire_write (void)
int | tryacquire_write_upgrade (void)
| Attempt to upgrade a read lock to a write lock. Returns 0 on success, -1 on failure.
const ACE_File_Lock& | lock (void) const
| Return the underlying lock.
void | dump (void) const
| Dump the state of an object.
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks.
## Private Methods
const ACE_TCHAR* | unique_name (void)
| Create and return the unique name.
## Private Attributes
ACE_TCHAR | name_ [ACE_UNIQUE_NAME_LEN]
| If the user does not provide a name we generate a unique name in this buffer.
ACE_File_Lock | lock_
| We need this to get the readers/writer semantics...

## Detailed Description

Wrapper for readers/writer locks that exist across processes.

Note that because this class uses the as its implementation it only can be reliably used between separate processes, rather than threads in the same process. This isn't a limitation of ACE, it's simply the file lock semantics on UNIX and Win32.

## Constructor & Destructor Documentation

ACE_RW_Process_Mutex::ACE_RW_Process_Mutex ( | const ACE_TCHAR * name = 0,
| int flags = O_CREAT|O_RDWR )

| Create a readers/writer <Process_Mutex>, passing in the optional <name>. If not specified, a name is generated.

ACE_RW_Process_Mutex::~ACE_RW_Process_Mutex ( | void )

## Member Function Documentation

ACE_INLINE int ACE_RW_Process_Mutex::acquire ( | void )

| Acquire lock ownership (wait on queue if necessary).

ACE_INLINE int ACE_RW_Process_Mutex::acquire_read ( | void )

| Acquire lock ownership (wait on queue if necessary).

ACE_INLINE int ACE_RW_Process_Mutex::acquire_write ( | void )

| Acquire lock ownership (wait on queue if necessary).

void ACE_RW_Process_Mutex::dump ( | void ) const

| Dump the state of an object.

ACE_INLINE const ACE_File_Lock & ACE_RW_Process_Mutex::lock ( | void ) const

| Return the underlying lock.

ACE_INLINE int ACE_RW_Process_Mutex::release ( | void )

| Release lock and unblock a thread at head of queue.

ACE_INLINE int ACE_RW_Process_Mutex::remove ( | void )

| Explicitly destroy the mutex. Note that only one thread should call this method since it doesn't protect against race conditions.

ACE_INLINE int ACE_RW_Process_Mutex::tryacquire ( | void )

| Conditionally acquire lock (i.e., don't wait on queue). Returns -1 on failure. If we "failed" because someone else already had the lock, <errno> is set to <EBUSY>.

ACE_INLINE int ACE_RW_Process_Mutex::tryacquire_read ( | void )

| Conditionally acquire a lock (i.e., won't block). Returns -1 on failure. If we "failed" because someone else already had the lock, <errno> is set to <EBUSY>.

ACE_INLINE int ACE_RW_Process_Mutex::tryacquire_write ( | void )

| Conditionally acquire a lock (i.e., won't block). Returns -1 on failure. If we "failed" because someone else already had the lock, <errno> is set to <EBUSY>.

ACE_INLINE int ACE_RW_Process_Mutex::tryacquire_write_upgrade ( | void )

| Attempt to upgrade a read lock to a write lock. Returns 0 on success, -1 on failure.

const ACE_TCHAR * ACE_RW_Process_Mutex::unique_name ( | void )`[private]`

| Create and return the unique name.

## Member Data Documentation

ACE_RW_Process_Mutex::ACE_ALLOC_HOOK_DECLARE

| Declare the dynamic allocation hooks.

ACE_File_Lock ACE_RW_Process_Mutex::lock_`[private]`

| We need this to get the readers/writer semantics...

ACE_TCHAR ACE_RW_Process_Mutex::name_[ACE_UNIQUE_NAME_LEN]`[private]`

| If the user does not provide a name we generate a unique name in this buffer.

The documentation for this class was generated from the following files:

- RW_Process_Mutex.h
- RW_Process_Mutex.cpp
- RW_Process_Mutex.inl