From 3ee3ffc2ff55834fd388dc5635374221e7b4e657 Mon Sep 17 00:00:00 2001 From: malc Date: Mon, 13 Feb 2012 04:51:07 +0400 Subject: [PATCH] Use proper mechanism for hasdata under Windows --- link.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/link.c b/link.c index 33328ea..fafbee0 100644 --- a/link.c +++ b/link.c @@ -348,13 +348,12 @@ static double now (void) static int hasdata (void) { - DWORD ret; + BOOL okay; + DWORD avail; - ret = WaitForSingleObject (state.cr, 0); - if (ret != WAIT_OBJECT_0 && ret != WAIT_TIMEOUT) { - winerr (1, "hasdata, WaitForSingleObject ret=%ld", ret); - } - return ret == WAIT_OBJECT_0; + okay = PeekNamedPipe (state.cr, NULL, 0, NULL, &avail, NULL); + if (!okay) winerr (1, "PeekNamedPipe"); + return avail > 0; } static void readdata (void *p, int size) -- 2.11.4.GIT