T. Bharath fixed higher resolution time for windows builds
authorDaniel Stenberg <daniel@haxx.se>
Mon, 3 Jun 2002 12:46:32 +0000 (12:46 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 3 Jun 2002 12:46:32 +0000 (12:46 +0000)
lib/timeval.c

index d076ecc..140bc55 100644 (file)
 int
 gettimeofday (struct timeval *tp, void *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_isdst = -1;
- tt = mktime (&tmtm);
- tp->tv_sec = tt;
- tp->tv_usec = st.wMilliseconds * 1000;
- return 1;
+#ifdef WITHOUT_MM_LIB
+  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_isdst = -1;
+  tt = mktime (&tmtm);
+  tp->tv_sec = tt;
+  tp->tv_usec = st.wMilliseconds * 1000;
+#else
+  /**
+   ** The earlier time calculations using GetLocalTime
+   ** had a time resolution of 10ms.The timeGetTime, part
+   ** of multimedia apis offer a better time resolution
+   ** of 1ms.Need to link against winmm.lib for this
+   **/
+  unsigned long Ticks = 0;
+  Ticks = timeGetTime();
+  tp->tv_sec = Ticks%1000;
+  tp->tv_usec = (Ticks - (tp->tv_sec*1000))*1000;
+  
+#endif
+  return 1;
 }
 #define HAVE_GETTIMEOFDAY
 #endif