Skip to content

Commit

Permalink
Merge pull request #1003 from shoelzer/master
Browse files Browse the repository at this point in the history
poll: Use GetTickCount64 to avoid wraparound issues
  • Loading branch information
dscho committed Jan 18, 2017
2 parents 631917c + 8b7aa98 commit 62d130d
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions compat/poll/poll.c
Original file line number Diff line number Diff line change
Expand Up @@ -446,7 +446,8 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)
static HANDLE hEvent;
WSANETWORKEVENTS ev;
HANDLE h, handle_array[FD_SETSIZE + 2];
DWORD ret, wait_timeout, nhandles, start = 0, elapsed, orig_timeout = 0;
DWORD ret, wait_timeout, nhandles, elapsed, orig_timeout = 0;
ULONGLONG start = 0;
fd_set rfds, wfds, xfds;
BOOL poll_again;
MSG msg;
Expand All @@ -462,7 +463,7 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)
if (timeout != INFTIM)
{
orig_timeout = timeout;
start = GetTickCount();
start = GetTickCount64();
}

if (!hEvent)
Expand Down Expand Up @@ -611,7 +612,7 @@ poll (struct pollfd *pfd, nfds_t nfd, int timeout)

if (!rc && orig_timeout && timeout != INFTIM)
{
elapsed = GetTickCount() - start;
elapsed = (DWORD)(GetTickCount64() - start);
timeout = elapsed >= orig_timeout ? 0 : orig_timeout - elapsed;
}

Expand Down

0 comments on commit 62d130d

Please sign in to comment.