00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
#ifndef APR_THREAD_RWLOCK_H
00017
#define APR_THREAD_RWLOCK_H
00018
00024
#include "apr.h"
00025
#include "apr_pools.h"
00026
#include "apr_errno.h"
00027
00028
#ifdef __cplusplus
00029
extern "C" {
00030
#endif
00031
00032
#if APR_HAS_THREADS
00033
00041 typedef struct apr_thread_rwlock_t apr_thread_rwlock_t;
00042
00050
APR_DECLARE(apr_status_t) apr_thread_rwlock_create(apr_thread_rwlock_t **rwlock,
00051 apr_pool_t *pool);
00058 APR_DECLARE(apr_status_t) apr_thread_rwlock_rdlock(apr_thread_rwlock_t *rwlock);
00059
00070 APR_DECLARE(apr_status_t) apr_thread_rwlock_tryrdlock(apr_thread_rwlock_t *rwlock);
00071
00079 APR_DECLARE(apr_status_t) apr_thread_rwlock_wrlock(apr_thread_rwlock_t *rwlock);
00080
00090 APR_DECLARE(apr_status_t) apr_thread_rwlock_trywrlock(apr_thread_rwlock_t *rwlock);
00091
00097 APR_DECLARE(apr_status_t) apr_thread_rwlock_unlock(apr_thread_rwlock_t *rwlock);
00098
00103 APR_DECLARE(apr_status_t) apr_thread_rwlock_destroy(apr_thread_rwlock_t *rwlock);
00104
00109 APR_POOL_DECLARE_ACCESSOR(thread_rwlock);
00110
00111 #endif
00112
00115 #ifdef __cplusplus
00116 }
00117 #endif
00118
00119 #endif