Second attempt at fixing Time::HiRes::time on win32. Apperently if ENV{TZ} is wrong...
Artur Bergman [Tue, 25 Sep 2001 13:37:12 +0000 (13:37 +0000)]
_ftime to try and be more robust.

p4raw-id: //depot/perl@12196

ext/Time/HiRes/HiRes.xs

index a4bf2df..a0349fa 100644 (file)
@@ -62,26 +62,15 @@ struct timeval {
  long tv_usec;
 }
 */
+#include <sys/timeb.h>
 
 int
 gettimeofday (struct timeval *tp, int nothing)
 {
- SYSTEMTIME st;
- time_t tt;
- struct tm tmtm;
- /* mktime converts local to UTC */
- GetLocalTime (&st);
- tmtm.tm_sec = st.wSecond;
- tmtm.tm_min = st.wMinute;
- tmtm.tm_hour = st.wHour;
- tmtm.tm_mday = st.wDay;
- tmtm.tm_mon = st.wMonth - 1;
- tmtm.tm_year = st.wYear - 1900;
- tmtm.tm_wday = st.wDayOfWeek;
- tmtm.tm_isdst = -1;
- tt = mktime (&tmtm);
- tp->tv_sec = tt;
- tp->tv_usec = st.wMilliseconds * 1000;
+ struct _timeb timebuffer;
+ _ftime( &timebuffer );
+ tp->tv_sec = timebuffer.time;
+ tp->tv_usec = timebuffer.millitm * 1000;
  return 0;
 }
 #endif