From 369adcf72fc67642dd6e8ab882f46f97dd7fe0c7 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 3 Nov 2005 02:41:51 +0000 Subject: * times.cc (hires_ms::minperiod): Make copy-on-fork. (gettimeofday): Remove temporary debugging. (hires_us::prime): Add lots of temporary debugging output. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/times.cc | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d6181ebea..46962eeb7 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2005-11-02 Christopher Faylor + + * times.cc (hires_ms::minperiod): Make copy-on-fork. + (gettimeofday): Remove temporary debugging. + (hires_us::prime): Add lots of temporary debugging output. + 2005-11-02 Christopher Faylor * times.cc (gettimeofday): Add temporary debugging output. diff --git a/winsup/cygwin/times.cc b/winsup/cygwin/times.cc index 0652a12fb..09cb3aae5 100644 --- a/winsup/cygwin/times.cc +++ b/winsup/cygwin/times.cc @@ -144,17 +144,16 @@ totimeval (struct timeval *dst, FILETIME *src, int sub, int flag) dst->tv_sec = x / (long long) (1e6); } -hires_ms gtod; -UINT NO_COPY hires_ms::minperiod; +hires_ms NO_COPY gtod; +UINT hires_ms::minperiod; /* FIXME: Make thread safe */ extern "C" int gettimeofday (struct timeval *tv, struct timezone *tz) { static bool tzflag; -debug_printf ("prior to gtod.usecs"); // DELETEME LONGLONG now = gtod.usecs (false); -debug_printf ("after to gtod.usecs"); // DELETEME + if (now == (LONGLONG) -1) return -1; @@ -562,24 +561,35 @@ void hires_us::prime () { LARGE_INTEGER ifreq; +debug_printf ("before QueryPerformanceFrequency"); // DELETEME if (!QueryPerformanceFrequency (&ifreq)) { +debug_printf ("QueryPerformanceFrequency failed"); // DELETEME inited = -1; return; } +debug_printf ("after QueryPerformanceFrequency"); // DELETEME FILETIME f; int priority = GetThreadPriority (GetCurrentThread ()); + +debug_printf ("before SetThreadPriority(THREAD_PRIORITY_TIME_CRITICAL)"); // DELETEME SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_TIME_CRITICAL); +debug_printf ("after SetThreadPriority(THREAD_PRIORITY_TIME_CRITICAL)"); // DELETEME if (!QueryPerformanceCounter (&primed_pc)) { +debug_printf ("QueryPerformanceCounter failed, %E"); SetThreadPriority (GetCurrentThread (), priority); +debug_printf ("After failing SetThreadPriority"); inited = -1; return; } +debug_printf ("after QueryPerformanceCounter"); // DELETEME GetSystemTimeAsFileTime (&f); +debug_printf ("after GetSystemTimeAsFileTime"); // DELETEME SetThreadPriority (GetCurrentThread (), priority); +debug_printf ("after SetThreadPriority(%d)", priority); // DELETEME inited = 1; primed_ft.HighPart = f.dwHighDateTime; -- cgit v1.2.3