diff options
author | Vicent Marti <tanoku@gmail.com> | 2011-03-17 22:11:35 +0200 |
---|---|---|
committer | Vicent Marti <tanoku@gmail.com> | 2011-03-17 22:16:54 +0200 |
commit | cb3e1334e8a5c3003fa0419442fc06d45508ac31 (patch) | |
tree | 6be2facd0014fff4a4769b6a6a082c722c03ad87 /src/win32 | |
parent | 12d67a2a4e7f673e6239ac8865dfe8cb6ddcae53 (diff) | |
download | libgit2-threadsafe.tar.gz |
Fix the threading implementationthreadsafe
Diffstat (limited to 'src/win32')
-rw-r--r-- | src/win32/pthread.c | 50 | ||||
-rw-r--r-- | src/win32/pthread.h | 9 |
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 |