#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.
Definition at line 43 of file Lock.h.
|
CE needs a default ctor here.
Definition at line 8 of file Lock.inl.
00009 { 00010 } |
|
Noop virtual destructor.
Definition at line 13 of file Lock.cpp.
00014 { 00015 } |
|
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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::acquire(). |
|
Block until the thread acquires a read lock. If the locking mechanism doesn't support read locks then this just calls . 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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::acquire_read(). |
|
Block until the thread acquires a write lock. If the locking mechanism doesn't support read locks then this just calls . 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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::acquire_write(). |
|
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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::release(). |
|
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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::remove(). |
|
Conditionally acquire the lock (i.e., won't block). Returns -1 on failure. If we "failed" because someone else already had the lock, Implemented in ACE_Adaptive_Lock, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::tryacquire(). |
|
Conditionally acquire a read lock. If the locking mechanism doesn't support read locks then this just calls . Returns -1 on failure. If we "failed" because someone else already had the lock, Implemented in ACE_Adaptive_Lock, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::tryacquire_read(). |
|
Conditionally acquire a write lock. If the locking mechanism doesn't support read locks then this just calls . Returns -1 on failure. If we "failed" because someone else already had the lock, Implemented in ACE_Adaptive_Lock, ACE_Lock_Adapter< ACE_LOCKING_MECHANISM >, ACE_Reverse_Lock< ACE_LOCKING_MECHANISM >, ACE_Lock_Adapter< ACE_SELECT_REACTOR_TOKEN >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::tryacquire_write(). |
|
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 . 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 >, and ACE_Lock_Adapter< ACE_Select_Reactor_Token >. Referenced by ACE_Adaptive_Lock::tryacquire_write_upgrade(). |