* 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.
This commit is contained in:
parent
1ee8d76ca0
commit
fca8f35f11
|
@ -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>
|
2010-05-26 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* path.cc (symlink_info::check): Don't try to handle remote reparse
|
* path.cc (symlink_info::check): Don't try to handle remote reparse
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* hires.h: Definitions for hires clock calculations
|
/* 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.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -25,9 +25,11 @@ class hires_base
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
int inited;
|
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_ft;
|
||||||
LARGE_INTEGER primed_pc;
|
LARGE_INTEGER primed_pc;
|
||||||
|
@ -37,7 +39,7 @@ class hires_us : hires_base
|
||||||
LONGLONG usecs (bool justdelta);
|
LONGLONG usecs (bool justdelta);
|
||||||
};
|
};
|
||||||
|
|
||||||
class hires_ms : hires_base
|
class hires_ms : public hires_base
|
||||||
{
|
{
|
||||||
LONGLONG initime_ns;
|
LONGLONG initime_ns;
|
||||||
void prime ();
|
void prime ();
|
||||||
|
|
|
@ -28,6 +28,8 @@ details. */
|
||||||
#define FACTOR (0x19db1ded53e8000LL)
|
#define FACTOR (0x19db1ded53e8000LL)
|
||||||
#define NSPERSEC 10000000LL
|
#define NSPERSEC 10000000LL
|
||||||
|
|
||||||
|
hires_ms NO_COPY gtod;
|
||||||
|
|
||||||
static inline LONGLONG
|
static inline LONGLONG
|
||||||
systime_ns ()
|
systime_ns ()
|
||||||
{
|
{
|
||||||
|
@ -116,6 +118,7 @@ settimeofday (const struct timeval *tv, const struct timezone *tz)
|
||||||
st.wMilliseconds = tv->tv_usec / 1000;
|
st.wMilliseconds = tv->tv_usec / 1000;
|
||||||
|
|
||||||
res = !SetSystemTime (&st);
|
res = !SetSystemTime (&st);
|
||||||
|
gtod.reset ();
|
||||||
|
|
||||||
syscall_printf ("%d = settimeofday (%x, %x)", res, tv, tz);
|
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);
|
dst->tv_sec = x / (long long) (1e6);
|
||||||
}
|
}
|
||||||
|
|
||||||
hires_ms NO_COPY gtod;
|
|
||||||
|
|
||||||
/* FIXME: Make thread safe */
|
/* FIXME: Make thread safe */
|
||||||
extern "C" int
|
extern "C" int
|
||||||
gettimeofday (struct timeval *tv, void *tzvp)
|
gettimeofday (struct timeval *tv, void *tzvp)
|
||||||
|
|
Loading…
Reference in New Issue