compat/win32/poll.c: upgrade from upstream
poll.c is updated from revision adc3a5b in git://git.savannah.gnu.org/gnulib.git The changes are applied with --whitespace=fix to reduce noise. poll.h is not upgraded, because the most recent version now contains template-stuff that breaks compilation for us. Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
0f77dea9a8
commit
f0bd664977
@ -1,7 +1,7 @@
|
|||||||
/* Emulation for poll(2)
|
/* Emulation for poll(2)
|
||||||
Contributed by Paolo Bonzini.
|
Contributed by Paolo Bonzini.
|
||||||
|
|
||||||
Copyright 2001-2003, 2006-2010 Free Software Foundation, Inc.
|
Copyright 2001-2003, 2006-2011 Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of gnulib.
|
This file is part of gnulib.
|
||||||
|
|
||||||
@ -27,7 +27,10 @@
|
|||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "poll.h"
|
|
||||||
|
/* Specification. */
|
||||||
|
#include <poll.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
@ -314,10 +317,7 @@ compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds)
|
|||||||
#endif /* !MinGW */
|
#endif /* !MinGW */
|
||||||
|
|
||||||
int
|
int
|
||||||
poll (pfd, nfd, timeout)
|
poll (struct pollfd *pfd, nfds_t nfd, int timeout)
|
||||||
struct pollfd *pfd;
|
|
||||||
nfds_t nfd;
|
|
||||||
int timeout;
|
|
||||||
{
|
{
|
||||||
#ifndef WIN32_NATIVE
|
#ifndef WIN32_NATIVE
|
||||||
fd_set rfds, wfds, efds;
|
fd_set rfds, wfds, efds;
|
||||||
@ -454,6 +454,7 @@ poll (pfd, nfd, timeout)
|
|||||||
if (!hEvent)
|
if (!hEvent)
|
||||||
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
|
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);
|
||||||
|
|
||||||
|
restart:
|
||||||
handle_array[0] = hEvent;
|
handle_array[0] = hEvent;
|
||||||
nhandles = 1;
|
nhandles = 1;
|
||||||
FD_ZERO (&rfds);
|
FD_ZERO (&rfds);
|
||||||
@ -594,6 +595,12 @@ poll (pfd, nfd, timeout)
|
|||||||
rc++;
|
rc++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!rc && timeout == INFTIM)
|
||||||
|
{
|
||||||
|
SwitchToThread();
|
||||||
|
goto restart;
|
||||||
|
}
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user