On 22/10/2009 8:47 PM, Kristján Valur Jónsson wrote:
The point in question seems to be this this (from the thread):
  * Need some sort of static "start value", which is set when the
  process starts, so I can return to Python in seconds.  An easy hack
  is to set this the first time clock() is called, but then it wont
  reflect any sort of real time - but would be useful for relative
  times...

But the argumentation is flawed.

It was made in the context of the APIs available to implement this. The code is short-and-sweet in timemodule.c, so please do go ahead and fix my flawed reasoning.

For reference:

#if defined(MS_WINDOWS) && !defined(__BORLANDC__)
/* Due to Mark Hammond and Tim Peters */
static PyObject *
time_clock(PyObject *self, PyObject *unused)
{
        static LARGE_INTEGER ctrStart;
        static double divisor = 0.0;
        LARGE_INTEGER now;
        double diff;

        if (divisor == 0.0) {
                LARGE_INTEGER freq;
                QueryPerformanceCounter(&ctrStart);
                if (!QueryPerformanceFrequency(&freq) || freq.QuadPart == 0) {
                        /* Unlikely to happen - this works on all intel
                           machines at least!  Revert to clock() */
                        return PyFloat_FromDouble(((double)clock()) /
                                                  CLOCKS_PER_SEC);
                }
                divisor = (double)freq.QuadPart;
        }
        QueryPerformanceCounter(&now);
        diff = (double)(now.QuadPart - ctrStart.QuadPart);
        return PyFloat_FromDouble(diff / divisor);
}


Cheers,

Mark.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to