poll: lazy-load GetTickCount64()

This fixes the compilation, actually, as we still did not make the jump to
post-Windows XP completely: we still compile with _WIN32_WINNT set to
0x0502 (which corresponds to Windows Server 2003 and is technically
greater than Windows XP's 0x0501).

However, GetTickCount64() is only available starting with Windows
Vista/Windows Server 2008.

Let's just lazy-load the function, which should also help Git for Windows
contributors who want to reinstate Windows XP support.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2016-12-20 17:18:05 +01:00
parent 7a7ac15692
commit ff2df87ca4

View File

@@ -269,6 +269,20 @@ win32_compute_revents_socket (SOCKET h, int sought, long lNetworkEvents)
return happened;
}
#include <windows.h>
#include "compat/win32/lazyload.h"
static ULONGLONG CompatGetTickCount64(void)
{
DECLARE_PROC_ADDR(kernel32.dll, ULONGLONG, GetTickCount64, void);
if (!INIT_PROC_ADDR(GetTickCount64))
return (ULONGLONG)GetTickCount();
return GetTickCount64();
}
#define GetTickCount64 CompatGetTickCount64
#else /* !MinGW */
/* Convert select(2) returned fd_sets into poll(2) revents values. */