threads / patch / 15631

patchcompat/mingw: Support a timeout in the poll emulation if no fds are given

Subject: [PATCH] compat/mingw: Support a timeout in the poll emulation if no fds are given

## tl;dr

One message between Sep 23, 2008 and Sep 23, 2008. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Johannes Sixt· Sep 23, 2008, 06:52 UTC · lore
From: Johannes Sixt <johannes.sixt@telecom.at>

Our poll() emulation did not support the timeout argument. With this patch we support it for the simple case where poll() does not need to wait on file descriptors as well because this case amounts to a mere Sleep().

This is needed if the user sets help.autocorrect is set to a positive value.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
---
 compat/mingw.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
Show changes to compat/mingw.c +6 −1
diff --git a/compat/mingw.c b/compat/mingw.c
index ccfa2a0..7eed60d 100644
--- a/compat/mingw.c
+++ b/compat/mingw.c
@@ -263,8 +263,13 @@ int poll(struct pollfd *ufds, unsigned int nfds, int timeout)
 {
 	int i, pending;

-	if (timeout != -1)
+	if (timeout >= 0) {
+		if (nfds == 0) {
+			Sleep(timeout);
+			return 0;
+		}
 		return errno = EINVAL, error("poll timeout not supported");
+	}

 	/* When there is only one fd to wait for, then we pretend that
 	 * input is available and let the actual wait happen when the
-- 
1.6.0.2.1220.gd1ae.dirty

← back to recent threads