From 551ab77c38d451dedb09a92a72d300004d215d90 Mon Sep 17 00:00:00 2001 From: eban Date: Mon, 5 Mar 2001 08:29:01 +0000 Subject: [PATCH] * win32/win32.c (gettimeofday): use GetLocalTime() instead of ftime() for high-resolution timing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@1230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ win32/win32.c | 20 +++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index b05c7c3e24..71cf2f23b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Mon Mar 5 17:19:56 2001 WATANABE Hirofumi + + * win32/win32.c (gettimeofday): use GetLocalTime() instead of ftime() + for high-resolution timing. + Sun Mar 4 17:01:09 2001 WATANABE Hirofumi * string.c (trnext): support backslash escape in String#tr. diff --git a/win32/win32.c b/win32/win32.c index 0dfe3e513c..e170f1b226 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -2495,13 +2495,23 @@ waitpid (pid_t pid, int *stat_loc, int options) int _cdecl gettimeofday(struct timeval *tv, struct timezone *tz) { - struct timeb tb; + SYSTEMTIME st; + time_t t; + struct tm tm; - ftime(&tb); - tv->tv_sec = tb.time; - tv->tv_usec = tb.millitm * 1000; + GetLocalTime(&st); + tm.tm_sec = st.wSecond; + tm.tm_min = st.wMinute; + tm.tm_hour = st.wHour; + tm.tm_mday = st.wDay; + tm.tm_mon = st.wMonth - 1; + tm.tm_year = st.wYear - 1900; + tm.tm_isdst = -1; + t = mktime(&tm); + tv->tv_sec = t; + tv->tv_usec = st.wMilliseconds * 1000; - return 0; + return 0; } char *