]> git.ipfire.org Git - thirdparty/git.git/commitdiff
win32: return error if SleepConditionVariableCS fails
authorGreg Funni <gfunni234@gmail.com>
Tue, 18 Nov 2025 15:41:54 +0000 (15:41 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 20 Nov 2025 22:45:26 +0000 (14:45 -0800)
If it fails, return an error.

Signed-off-by: Greg Funni <gfunni234@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/win32/pthread.c
compat/win32/pthread.h

index 58980a529c3eb9c2beb9f9fd6d8ca7b5ec6e3b22..7e93146963ec56b9c6b126151fd3e01fdabd3f6f 100644 (file)
@@ -59,3 +59,10 @@ pthread_t pthread_self(void)
        t.tid = GetCurrentThreadId();
        return t;
 }
+
+int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)
+{
+       if (SleepConditionVariableCS(cond, mutex, INFINITE) == 0)
+               return err_win_to_posix(GetLastError());
+       return 0;
+}
index e2b5c4f64c9b910e472faa918e11aed93589e144..859e1d9021c97c06f71e74a0d62d3c55d49bbbd3 100644 (file)
@@ -36,7 +36,6 @@ typedef int pthread_mutexattr_t;
 
 #define pthread_cond_init(a,b) InitializeConditionVariable((a))
 #define pthread_cond_destroy(a) do {} while (0)
-#define pthread_cond_wait(a,b) return_0(SleepConditionVariableCS((a), (b), INFINITE))
 #define pthread_cond_signal WakeConditionVariable
 #define pthread_cond_broadcast WakeAllConditionVariable
 
@@ -64,6 +63,8 @@ int win32_pthread_join(pthread_t *thread, void **value_ptr);
 #define pthread_equal(t1, t2) ((t1).tid == (t2).tid)
 pthread_t pthread_self(void);
 
+int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
+
 static inline void NORETURN pthread_exit(void *ret)
 {
        _endthreadex((unsigned)(uintptr_t)ret);