ACE
6.3.3
|
This is the abstract base class that contains the uniform locking API that is supported by all the ACE synchronization mechanisms. More...
#include <Lock.h>
Public Member Functions | |
ACE_Lock (void) | |
CE needs a default constructor here. More... | |
virtual | ~ACE_Lock (void) |
Noop virtual destructor. More... | |
virtual int | remove (void)=0 |
virtual int | acquire (void)=0 |
virtual int | tryacquire (void)=0 |
virtual int | release (void)=0 |
Release the lock. Returns -1 on failure. More... | |
virtual int | acquire_read (void)=0 |
virtual int | acquire_write (void)=0 |
virtual int | tryacquire_read (void)=0 |
virtual int | tryacquire_write (void)=0 |
virtual int | tryacquire_write_upgrade (void)=0 |
This is the abstract base class that contains the uniform locking API that is supported by all the ACE synchronization mechanisms.
This class is typically used in conjunction with the ACE_Lock_Adapter in order to provide a polymorphic interface to the ACE synchronization mechanisms (e.g., ACE_Mutex, ACE_Semaphore, ACE_RW_Mutex, etc). Note that the reason that all of ACE doesn't use polymorphic locks is that (1) they add ~20% extra overhead for virtual function calls and (2) objects with virtual functions can't be placed into shared memory.
|
inline |
CE needs a default constructor here.
|
virtual |
Noop virtual destructor.
|
pure virtual |
Block the thread until the lock is acquired. Returns -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Block until the thread acquires a read lock. If the locking mechanism doesn't support read locks then this just calls acquire(). Returns -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Block until the thread acquires a write lock. If the locking mechanism doesn't support read locks then this just calls acquire(). Returns -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Release the lock. Returns -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Explicitly destroy the lock. Note that only one thread should call this method since it doesn't protect against race conditions.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Conditionally acquire the 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
.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Conditionally acquire a read lock. If the locking mechanism doesn't support read locks then this just calls acquire(). Returns -1 on failure. If we "failed" because someone else already had the lock, errno
is set to EBUSY
.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Conditionally acquire a write lock. If the locking mechanism doesn't support read locks then this just calls acquire(). Returns -1 on failure. If we "failed" because someone else already had the lock, errno
is set to EBUSY
.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.
|
pure virtual |
Conditionally try to upgrade a lock held for read to a write lock. If the locking mechanism doesn't support read locks then this just calls acquire(). Returns 0 on success, -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Reactor_Token_T< ACE_DEV_POLL_TOKEN > >, ACE_Lock_Adapter< ACE_Process_Mutex >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >.