From d34ab8d619ec0ff3b15b1cc554a3ea53e28cdca0 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 1 May 2003 22:14:04 +0000 Subject: [PATCH] #includes errno.h (for EBUSY and EAGAIN definitions). Created (non-POSIX) sem_trywait_block implementation for Win32 (need to investigate/implement draft-POSIX sem_timedwait function). --- src/xpdev/threadwrap.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/xpdev/threadwrap.h b/src/xpdev/threadwrap.h index 93159b947e..5b966d0d58 100644 --- a/src/xpdev/threadwrap.h +++ b/src/xpdev/threadwrap.h @@ -61,12 +61,14 @@ extern "C" { #include <process.h> /* _beginthread */ #include <limits.h> /* INT_MAX */ + #include <errno.h> /* EAGAIN and EBUSY */ /* POSIX semaphores */ typedef HANDLE sem_t; #define sem_init(psem,ps,v) *(psem)=CreateSemaphore(NULL,v,INT_MAX,NULL) #define sem_wait(psem) WaitForSingleObject(*(psem),INFINITE) #define sem_trywait(psem) (WaitForSingleObject(*(psem),0)==WAIT_OBJECT_0?0:EAGAIN) + #define sem_trywait_block(psem,t) (WaitForSingleObject(*(psem),t)==WAIT_OBJECT_0?0:EAGAIN) #define sem_post(psem) ReleaseSemaphore(*(psem),1,NULL) #define sem_destroy(psem) CloseHandle(*(psem)) /* No Win32 implementation for sem_getvalue() */ -- GitLab