summaryrefslogtreecommitdiff
path: root/src/win32
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2011-03-17 22:11:35 +0200
committerVicent Marti <tanoku@gmail.com>2011-03-17 22:16:54 +0200
commitcb3e1334e8a5c3003fa0419442fc06d45508ac31 (patch)
tree6be2facd0014fff4a4769b6a6a082c722c03ad87 /src/win32
parent12d67a2a4e7f673e6239ac8865dfe8cb6ddcae53 (diff)
downloadlibgit2-threadsafe.tar.gz
Fix the threading implementationthreadsafe
Diffstat (limited to 'src/win32')
-rw-r--r--src/win32/pthread.c50
-rw-r--r--src/win32/pthread.h9
2 files changed, 9 insertions, 50 deletions
diff --git a/src/win32/pthread.c b/src/win32/pthread.c
index fffff81df..f47364a76 100644
--- a/src/win32/pthread.c
+++ b/src/win32/pthread.c
@@ -36,32 +36,6 @@ int pthread_create(pthread_t *GIT_RESTRICT thread,
return *thread ? GIT_SUCCESS : GIT_EOSERR;
}
-int pthread_cond_signal(pthread_cond_t *cond)
-{
- WakeConditionVariable(cond);
- return 0;
-}
-
-int pthread_cond_wait(pthread_cond_t *GIT_RESTRICT cond,
- pthread_mutex_t *GIT_RESTRICT mutex)
-{
- int ret;
- ret = SleepConditionVariableCS(cond, mutex, INFINITE);
- return -(!ret);
-}
-
-int pthread_mutex_lock(pthread_mutex_t *mutex)
-{
- EnterCriticalSection(mutex);
- return 0;
-}
-
-int pthread_mutex_unlock(pthread_mutex_t *mutex)
-{
- LeaveCriticalSection(mutex);
- return 0;
-}
-
int pthread_join(pthread_t thread, void **value_ptr)
{
int ret;
@@ -71,9 +45,11 @@ int pthread_join(pthread_t thread, void **value_ptr)
return -(!!ret);
}
-int pthread_cond_broadcast(pthread_cond_t *cond)
+int pthread_mutex_init(pthread_mutex_t *GIT_RESTRICT mutex,
+ const pthread_mutexattr_t *GIT_RESTRICT GIT_UNUSED(mutexattr))
{
- WakeAllConditionVariable(cond);
+ GIT_UNUSED_ARG(mutexattr);
+ InitializeCriticalSection(mutex);
return 0;
}
@@ -84,25 +60,15 @@ int pthread_mutex_destroy(pthread_mutex_t *mutex)
return -(!ret);
}
-int pthread_cond_destroy(pthread_cond_t *GIT_UNUSED(cond))
-{
- GIT_UNUSED_ARG(cond);
- return 0;
-}
-
-int pthread_cond_init(pthread_cond_t *GIT_RESTRICT cond,
- const pthread_condattr_t *GIT_RESTRICT GIT_UNUSED(condattr))
+int pthread_mutex_lock(pthread_mutex_t *mutex)
{
- GIT_UNUSED_ARG(condattr);
- InitializeConditionVariable(cond);
+ EnterCriticalSection(mutex);
return 0;
}
-int pthread_mutex_init(pthread_mutex_t *GIT_RESTRICT mutex,
- const pthread_mutexattr_t *GIT_RESTRICT GIT_UNUSED(mutexattr))
+int pthread_mutex_unlock(pthread_mutex_t *mutex)
{
- GIT_UNUSED_ARG(mutexattr);
- InitializeCriticalSection(mutex);
+ LeaveCriticalSection(mutex);
return 0;
}
diff --git a/src/win32/pthread.h b/src/win32/pthread.h
index ff694e303..10949f1eb 100644
--- a/src/win32/pthread.h
+++ b/src/win32/pthread.h
@@ -40,7 +40,6 @@ typedef int pthread_mutexattr_t;
typedef int pthread_condattr_t;
typedef int pthread_attr_t;
typedef CRITICAL_SECTION pthread_mutex_t;
-typedef CONDITION_VARIABLE pthread_cond_t;
typedef HANDLE pthread_t;
#define PTHREAD_MUTEX_INITIALIZER {(void*)-1};
@@ -56,12 +55,6 @@ int pthread_mutex_destroy(pthread_mutex_t *);
int pthread_mutex_lock(pthread_mutex_t *);
int pthread_mutex_unlock(pthread_mutex_t *);
-int pthread_cond_init(pthread_cond_t *GIT_RESTRICT, const pthread_condattr_t *GIT_RESTRICT);
-int pthread_cond_destroy(pthread_cond_t *);
-int pthread_cond_broadcast(pthread_cond_t *);
-int pthread_cond_signal(pthread_cond_t *);
-int pthread_cond_wait(pthread_cond_t *GIT_RESTRICT, pthread_mutex_t *GIT_RESTRICT);
-
int pthread_num_processors_np(void);
-#endif \ No newline at end of file
+#endif