mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
rdwr.h from orielly examples (with multiple inclusion protection)
This commit is contained in:
parent
cb587e9bf0
commit
3780fa4740
34
include/lthread_rdwr.h
Normal file
34
include/lthread_rdwr.h
Normal file
@ -0,0 +1,34 @@
|
||||
#ifndef _LTHREAD_RDWR_H
|
||||
#define _LTHREAD_RDWR_H 1
|
||||
|
||||
/********************************************************
|
||||
* An example source module to accompany...
|
||||
*
|
||||
* "Using POSIX Threads: Programming with Pthreads"
|
||||
* by Brad nichols, Dick Buttlar, Jackie Farrell
|
||||
* O'Reilly & Associates, Inc.
|
||||
*
|
||||
********************************************************
|
||||
*
|
||||
* Include file for reader/writer locks
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct rdwr_var {
|
||||
int readers_reading;
|
||||
int writer_writing;
|
||||
pthread_mutex_t mutex;
|
||||
pthread_cond_t lock_free;
|
||||
} pthread_rdwr_t;
|
||||
|
||||
typedef void * pthread_rdwrattr_t;
|
||||
|
||||
#define pthread_rdwrattr_default NULL;
|
||||
|
||||
int pthread_rdwr_init_np(pthread_rdwr_t *rdwrp, pthread_rdwrattr_t *attrp);
|
||||
int pthread_rdwr_rlock_np(pthread_rdwr_t *rdwrp);
|
||||
int pthread_rdwr_runlock_np(pthread_rdwr_t *rdwrp);
|
||||
int pthread_rdwr_wlock_np(pthread_rdwr_t *rdwrp);
|
||||
int pthread_rdwr_wunlock_np(pthread_rdwr_t *rdwrp);
|
||||
|
||||
#endif /* _LTHREAD_RDWR_H */
|
Loading…
Reference in New Issue
Block a user