summaryrefslogtreecommitdiff
path: root/src/win32/pthread.h
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-08-22 14:10:56 -0700
committerRussell Belfer <rb@github.com>2013-08-22 14:10:56 -0700
commit972bb689c4a69ba5a5dfaeebacc7198622c4f051 (patch)
tree563f1ac8a33f5d44f32be76ea5d7fc862cec8457 /src/win32/pthread.h
parent2b6e1908476c95c84d3e3a62ac069f789156b070 (diff)
downloadlibgit2-972bb689c4a69ba5a5dfaeebacc7198622c4f051.tar.gz
Add SRWLock implementation of rwlocks for Win32
Diffstat (limited to 'src/win32/pthread.h')
-rw-r--r--src/win32/pthread.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/win32/pthread.h b/src/win32/pthread.h
index 8277ecf6e..54e5286a6 100644
--- a/src/win32/pthread.h
+++ b/src/win32/pthread.h
@@ -19,11 +19,15 @@
typedef int pthread_mutexattr_t;
typedef int pthread_condattr_t;
typedef int pthread_attr_t;
+typedef int pthread_rwlockattr_t;
+
typedef CRITICAL_SECTION pthread_mutex_t;
typedef HANDLE pthread_t;
typedef HANDLE pthread_cond_t;
+typedef SRWLOCK pthread_rwlock_t;
-#define PTHREAD_MUTEX_INITIALIZER {(void*)-1};
+#define PTHREAD_MUTEX_INITIALIZER {(void*)-1}
+#define PTHREAD_RWLOCK_INITIALIZER SRWLOCK_INIT
int pthread_create(
pthread_t *GIT_RESTRICT,
@@ -47,4 +51,12 @@ int pthread_cond_signal(pthread_cond_t *);
int pthread_num_processors_np(void);
+int pthread_rwlock_init(
+ pthread_rwlock_t *GIT_RESTRICT, const pthread_rwlockattr_t *GIT_RESTRICT);
+int pthread_rwlock_rdlock(pthread_rwlock_t *);
+int pthread_rwlock_rdunlock(pthread_rwlock_t *);
+int pthread_rwlock_wrlock(pthread_rwlock_t *);
+int pthread_rwlock_wrunlock(pthread_rwlock_t *);
+int pthread_rwlock_destroy(pthread_rwlock_t *);
+
#endif