]> git.ipfire.org Git - thirdparty/curl.git/commit
tool_util: Improve Windows version of tvnow()
authorJay Satiro <raysatiro@yahoo.com>
Fri, 24 Jan 2020 08:34:52 +0000 (03:34 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Tue, 18 Feb 2020 20:52:13 +0000 (15:52 -0500)
commit1fc0617dccc3fa138235f219e2eaa7b405d1162e
tree76d86ee1145e2e8dad7dc16f95c4a4b14f88898e
parent3735107d62ad28d6e25bd94109ab9f2454c22116
tool_util: Improve Windows version of tvnow()

- Change tool_util.c tvnow() for Windows to match more closely to
  timeval.c Curl_now().

- Create a win32 init function for the tool, since some initialization
  is required for the tvnow() changes.

Prior to this change the monotonic time function used by curl in Windows
was determined at build-time and not runtime. That was a problem because
when curl was built targeted for compatibility with old versions of
Windows (eg _WIN32_WINNT < 0x0600) it would use GetTickCount which wraps
every 49.7 days that Windows has been running.

This change makes curl behave similar to libcurl's tvnow function, which
determines at runtime whether the OS is Vista+ and if so calls
QueryPerformanceCounter instead. (Note QueryPerformanceCounter is used
because it has higher resolution than the more obvious candidate
GetTickCount64). The changes to tvnow are basically a copy and paste but
the types in some cases are different.

Ref: https://github.com/curl/curl/issues/3309

Closes https://github.com/curl/curl/pull/4847
lib/system_win32.c
lib/timeval.c
src/tool_doswin.c
src/tool_doswin.h
src/tool_main.c
src/tool_util.c