Browse Source

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>
maint
Erik Faye-Lund 13 years ago committed by Junio C Hamano
parent
commit
f0bd664977
  1. 19
      compat/win32/poll.c

19
compat/win32/poll.c

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
/* Emulation for poll(2)
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.

@ -27,7 +27,10 @@ @@ -27,7 +27,10 @@
#include <malloc.h>

#include <sys/types.h>
#include "poll.h"

/* Specification. */
#include <poll.h>

#include <errno.h>
#include <limits.h>
#include <assert.h>
@ -314,10 +317,7 @@ compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds) @@ -314,10 +317,7 @@ compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds)
#endif /* !MinGW */

int
poll (pfd, nfd, timeout)
struct pollfd *pfd;
nfds_t nfd;
int timeout;
poll (struct pollfd *pfd, nfds_t nfd, int timeout)
{
#ifndef WIN32_NATIVE
fd_set rfds, wfds, efds;
@ -454,6 +454,7 @@ poll (pfd, nfd, timeout) @@ -454,6 +454,7 @@ poll (pfd, nfd, timeout)
if (!hEvent)
hEvent = CreateEvent (NULL, FALSE, FALSE, NULL);

restart:
handle_array[0] = hEvent;
nhandles = 1;
FD_ZERO (&rfds);
@ -594,6 +595,12 @@ poll (pfd, nfd, timeout) @@ -594,6 +595,12 @@ poll (pfd, nfd, timeout)
rc++;
}

if (!rc && timeout == INFTIM)
{
SwitchToThread();
goto restart;
}

return rc;
#endif
}

Loading…
Cancel
Save