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 typedef struct rdwr_var {
20 pthread_mutex_t mutex;
21 pthread_cond_t lock_free;
24 typedef void * pthread_rdwrattr_t;
26 #define pthread_rdwrattr_default NULL;
28 int pthread_rdwr_init_np(pthread_rdwr_t *rdwrp, pthread_rdwrattr_t *attrp);
29 int pthread_rdwr_rlock_np(pthread_rdwr_t *rdwrp);
30 int pthread_rdwr_runlock_np(pthread_rdwr_t *rdwrp);
31 int pthread_rdwr_wlock_np(pthread_rdwr_t *rdwrp);
32 int pthread_rdwr_wunlock_np(pthread_rdwr_t *rdwrp);
35 int pthread_rdwr_rchk_np(pthread_rdwr_t *rdwrp);
36 int pthread_rdwr_wchk_np(pthread_rdwr_t *rdwrp);
37 int pthread_rdwr_rwchk_np(pthread_rdwr_t *rdwrp);
38 #endif /* LDAP_DEBUG */
40 #endif /* _LTHREAD_RDWR_H */