]> git.sur5r.net Git - openldap/commitdiff
rdwr.h from orielly examples (with multiple inclusion protection)
authorKurt Zeilenga <kurt@openldap.org>
Sun, 30 Aug 1998 18:58:06 +0000 (18:58 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sun, 30 Aug 1998 18:58:06 +0000 (18:58 +0000)
include/lthread_rdwr.h [new file with mode: 0644]

diff --git a/include/lthread_rdwr.h b/include/lthread_rdwr.h
new file mode 100644 (file)
index 0000000..d5335d7
--- /dev/null
@@ -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 */