diff options
| author | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-03-05 08:29:01 +0000 |
|---|---|---|
| committer | eban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2001-03-05 08:29:01 +0000 |
| commit | 6587c2ba64b29546d0f4b249bea61e006dd0f9b5 (patch) | |
| tree | ece317a7f511c4c18444c8d6f3d20c73bf0838bf /win32 | |
| parent | 8f9e891b27c72731bb66ee93bb6024f65531c1a8 (diff) | |
| download | ruby-6587c2ba64b29546d0f4b249bea61e006dd0f9b5.tar.gz ruby-6587c2ba64b29546d0f4b249bea61e006dd0f9b5.tar.xz ruby-6587c2ba64b29546d0f4b249bea61e006dd0f9b5.zip | |
* win32/win32.c (gettimeofday): use GetLocalTime() instead of ftime()
for high-resolution timing.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@1230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
| -rw-r--r-- | win32/win32.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/win32/win32.c b/win32/win32.c index 0dfe3e513..e170f1b22 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; + + 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; - ftime(&tb); - tv->tv_sec = tb.time; - tv->tv_usec = tb.millitm * 1000; - - return 0; + return 0; } char * |
