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