#include <Lock.h>
Inheritance diagram for ACE_Lock:
Public Member Functions | |
ACE_Lock (void) | |
CE needs a default ctor here. | |
virtual | ~ACE_Lock (void) |
Noop virtual destructor. | |
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. | |
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 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.
|
CE needs a default ctor here.
|
|
Noop virtual destructor.
|
|
Block the thread until the lock is acquired. Returns -1 on failure. Implemented in ACE_Adaptive_Lock, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
Release the lock. Returns -1 on failure.
Implemented in ACE_Adaptive_Lock, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |
|
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_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, ACE_Lock_Adapter< ACE_Process_Mutex >, ACE_Lock_Adapter< ACE_SYNCH_MUTEX >, ACE_Lock_Adapter< ACE_Select_Reactor_Token >, and ACE_Reverse_Lock< MUTEX >. |