1 #ifndef _LTHREAD_RDWR_H
2 #define _LTHREAD_RDWR_H 1
4 /********************************************************
5 * An example source module to accompany...
7 * "Using POSIX Threads: Programming with Pthreads"
8 * by Brad nichols, Dick Buttlar, Jackie Farrell
9 * O'Reilly & Associates, Inc.
11 ********************************************************
13 * Include file for reader/writer locks
17 #include <ldap_cdefs.h>
21 typedef struct rdwr_var {
24 pthread_mutex_t mutex;
25 pthread_cond_t lock_free;
28 typedef void * pthread_rdwrattr_t;
30 #define pthread_rdwrattr_default NULL;
32 LDAP_F int pthread_rdwr_init_np LDAP_P((pthread_rdwr_t *rdwrp, pthread_rdwrattr_t *attrp));
33 LDAP_F int pthread_rdwr_rlock_np LDAP_P((pthread_rdwr_t *rdwrp));
34 LDAP_F int pthread_rdwr_runlock_np LDAP_P((pthread_rdwr_t *rdwrp));
35 LDAP_F int pthread_rdwr_wlock_np LDAP_P((pthread_rdwr_t *rdwrp));
36 LDAP_F int pthread_rdwr_wunlock_np LDAP_P((pthread_rdwr_t *rdwrp));
39 LDAP_F int pthread_rdwr_rchk_np LDAP_P((pthread_rdwr_t *rdwrp));
40 LDAP_F int pthread_rdwr_wchk_np LDAP_P((pthread_rdwr_t *rdwrp));
41 LDAP_F int pthread_rdwr_rwchk_np LDAP_P((pthread_rdwr_t *rdwrp));
42 #endif /* LDAP_DEBUG */
46 #endif /* _LTHREAD_RDWR_H */