summaryrefslogtreecommitdiffstats
path: root/server/thread.h
diff options
context:
space:
mode:
authorBrian Cully <bjc@kublai.com>2008-04-14 21:52:55 -0400
committerBrian Cully <github.20.shmit@spamgourmet.com>2008-04-14 21:52:55 -0400
commit6ba98a9f9f48e13738d9736cba9c45b5e94f42f2 (patch)
tree86d7c281bcdbf67eb53cee064aa905e740ec5ccf /server/thread.h
downloadnastd-6ba98a9f9f48e13738d9736cba9c45b5e94f42f2.tar.gz
nastd-6ba98a9f9f48e13738d9736cba9c45b5e94f42f2.zip
Initial import
Diffstat (limited to 'server/thread.h')
-rw-r--r--server/thread.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/server/thread.h b/server/thread.h
new file mode 100644
index 0000000..0aadef4
--- /dev/null
+++ b/server/thread.h
@@ -0,0 +1,49 @@
+/* $Id: thread.h,v 1.5 2000/03/15 00:09:25 shmit Exp $ */
+
+#ifndef THREAD_H
+# define THREAD_H
+
+#include "conf.h"
+
+#include <pthread.h>
+
+typedef pthread_t thread_id;
+typedef pthread_mutex_t mutex_t;
+
+struct _rwlock {
+ mutex_t lock;
+ int state;
+ pthread_cond_t read_sig;
+ pthread_cond_t write_sig;
+ int blocked_writers;
+};
+typedef struct _rwlock rw_mutex_t;
+
+struct thread {
+ void *(*thread_func)(void *arg);
+ pthread_t id;
+};
+typedef struct thread thread_t;
+
+struct cond {
+ pthread_cond_t id;
+ mutex_t lock;
+};
+typedef struct cond cond_t;
+
+int thread_new(thread_t *thread, void *(*thread_func)(void *), void *arg);
+void thread_kill(thread_t *thread);
+int thread_reload(thread_t *thread);
+int mutex_new(mutex_t *lock);
+int mutex_lock(mutex_t *lock);
+int mutex_unlock(mutex_t *lock);
+int rw_mutex_new(rw_mutex_t *lock);
+int rw_mutex_read_lock(rw_mutex_t *lock);
+int rw_mutex_write_lock(rw_mutex_t *lock);
+int rw_mutex_unlock(rw_mutex_t *lock);
+int cond_new(cond_t *cond);
+int cond_signal(cond_t *cond);
+int cond_wait(cond_t *cond);
+int cond_timedwait(cond_t *cond, const struct timespec *abstime);
+int cond_destroy(cond_t *cond);
+#endif