Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

Reader/Writer Lock Routines
[Apache Portability Runtime library]


Typedefs

typedef apr_thread_rwlock_t apr_thread_rwlock_t

Functions

apr_status_t apr_thread_rwlock_create (apr_thread_rwlock_t **rwlock, apr_pool_t *pool)
apr_status_t apr_thread_rwlock_rdlock (apr_thread_rwlock_t *rwlock)
apr_status_t apr_thread_rwlock_tryrdlock (apr_thread_rwlock_t *rwlock)
apr_status_t apr_thread_rwlock_wrlock (apr_thread_rwlock_t *rwlock)
apr_status_t apr_thread_rwlock_trywrlock (apr_thread_rwlock_t *rwlock)
apr_status_t apr_thread_rwlock_unlock (apr_thread_rwlock_t *rwlock)
apr_status_t apr_thread_rwlock_destroy (apr_thread_rwlock_t *rwlock)
apr_pool_tapr_thread_rwlock_pool_get (const apr_thread_rwlock_t *thethread_rwlock)

Typedef Documentation

typedef struct apr_thread_rwlock_t apr_thread_rwlock_t
 

Opaque read-write thread-safe lock.


Function Documentation

apr_status_t apr_thread_rwlock_create apr_thread_rwlock_t **    rwlock,
apr_pool_t   pool
 

Create and initialize a read-write lock that can be used to synchronize threads.

Parameters:
rwlock  the memory address where the newly created readwrite lock will be stored.
pool  the pool from which to allocate the mutex.

apr_status_t apr_thread_rwlock_destroy apr_thread_rwlock_t   rwlock
 

Destroy the read-write lock and free the associated memory.

Parameters:
rwlock  the rwlock to destroy.

apr_pool_t* apr_thread_rwlock_pool_get const apr_thread_rwlock_t   thethread_rwlock
 

Get the pool used by this thread_rwlock.

Returns:
apr_pool_t the pool

apr_status_t apr_thread_rwlock_rdlock apr_thread_rwlock_t   rwlock
 

Acquire a shared-read lock on the given read-write lock. This will allow multiple threads to enter the same critical section while they have acquired the read lock.

Parameters:
rwlock  the read-write lock on which to acquire the shared read.

apr_status_t apr_thread_rwlock_tryrdlock apr_thread_rwlock_t   rwlock
 

Attempt to acquire the shread-read lock on the given read-write lock. This is the same as apr_thread_rwlock_rdlock(), only that the funtion fails if there is another thread holding the write lock, or if there are any write threads blocking on the lock. If the function failes for this case, APR_EBUSY will be returned. Note: it is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was APR_EBUSY, for portability reasons.

Parameters:
rwlock  the rwlock on which to attempt the shared read.

apr_status_t apr_thread_rwlock_trywrlock apr_thread_rwlock_t   rwlock
 

Attempt to acquire the exclusive-write lock on the given read-write lock. This is the same as apr_thread_rwlock_wrlock(), only that the funtion fails if there is any other thread holding the lock (for reading or writing), in which case the function will return APR_EBUSY. Note: it is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was APR_EBUSY, for portability reasons.

Parameters:
rwlock  the rwlock on which to attempt the exclusive write.

apr_status_t apr_thread_rwlock_unlock apr_thread_rwlock_t   rwlock
 

Release either the read or write lock currently held by the calling thread associated with the given read-write lock.

Parameters:
rwlock  the read-write lock to be released (unlocked).

apr_status_t apr_thread_rwlock_wrlock apr_thread_rwlock_t   rwlock
 

Acquire an exclusive-write lock on the given read-write lock. This will allow only one single thread to enter the critical sections. If there are any threads currently holding thee read-lock, this thread is put to sleep until it can have exclusive access to the lock.

Parameters:
rwlock  the read-write lock on which to acquire the exclusive write.


Generated on Thu Dec 25 11:41:05 2003 for Apache Portable Runtime by doxygen1.2.18