]> sourceware.org Git - newlib-cygwin.git/commitdiff
* hires.h (hires_base::reset): New function.
authorChristopher Faylor <me@cgf.cx>
Wed, 26 May 2010 14:48:17 +0000 (14:48 +0000)
committerChristopher Faylor <me@cgf.cx>
Wed, 26 May 2010 14:48:17 +0000 (14:48 +0000)
(hires_us): Specify that hires_base is a public import.
(hires_ms): Ditto.
* times.cc (gtod): Move earlier in file.
(settimeofday): Reset gtod so that base will be subsequently recalculated.

winsup/cygwin/ChangeLog
winsup/cygwin/hires.h
winsup/cygwin/times.cc

index 14f8e96627ca27ece11f2d4a7a2ef06b0605474f..c327d92fd8a0af3e086aaf528c43a2216696dcef 100644 (file)
@@ -1,3 +1,12 @@
+2010-05-26  Christopher Faylor  <me+cygwin@cgf.cx>
+
+       * hires.h (hires_base::reset): New function.
+       (hires_us): Specify that hires_base is a public import.
+       (hires_ms): Ditto.
+       * times.cc (gtod): Move earlier in file.
+       (settimeofday): Reset gtod so that base will be subsequently
+       recalculated.
+
 2010-05-26  Corinna Vinschen  <corinna@vinschen.de>
 
        * path.cc (symlink_info::check): Don't try to handle remote reparse
index e91df0690e0faf5137b6b6d929331afc0683d0d1..6a7fe8c72fb021fb4e8c414b8d166867384a6ca5 100644 (file)
@@ -1,6 +1,6 @@
 /* hires.h: Definitions for hires clock calculations
 
-   Copyright 2002, 2003, 2004, 2005, 2009 Red Hat, Inc.
+   Copyright 2002, 2003, 2004, 2005, 2009, 2010 Red Hat, Inc.
 
 This file is part of Cygwin.
 
@@ -25,9 +25,11 @@ class hires_base
 {
  protected:
   int inited;
+ public:
+  void reset() {inited = false;}
 };
 
-class hires_us : hires_base
+class hires_us : public hires_base
 {
   LARGE_INTEGER primed_ft;
   LARGE_INTEGER primed_pc;
@@ -37,7 +39,7 @@ class hires_us : hires_base
   LONGLONG usecs (bool justdelta);
 };
 
-class hires_ms : hires_base
+class hires_ms : public hires_base
 {
   LONGLONG initime_ns;
   void prime ();
index 39fc6546a919ef653793bbb87335bbef8d7ee876..f6f23bbbbbbf77a58fcbf78f790d0b044dcf1226 100644 (file)
@@ -28,6 +28,8 @@ details. */
 #define FACTOR (0x19db1ded53e8000LL)
 #define NSPERSEC 10000000LL
 
+hires_ms NO_COPY gtod;
+
 static inline LONGLONG
 systime_ns ()
 {
@@ -116,6 +118,7 @@ settimeofday (const struct timeval *tv, const struct timezone *tz)
   st.wMilliseconds = tv->tv_usec / 1000;
 
   res = !SetSystemTime (&st);
+  gtod.reset ();
 
   syscall_printf ("%d = settimeofday (%x, %x)", res, tv, tz);
 
@@ -146,8 +149,6 @@ totimeval (struct timeval *dst, FILETIME *src, int sub, int flag)
   dst->tv_sec = x / (long long) (1e6);
 }
 
-hires_ms NO_COPY gtod;
-
 /* FIXME: Make thread safe */
 extern "C" int
 gettimeofday (struct timeval *tv, void *tzvp)
This page took 0.032921 seconds and 5 git commands to generate.