STINNER Victor <[email protected]> added the comment:
FreeBSD doesn't provide CLOCK_PROCESS_CPUTIME_ID, but CLOCK_PROF. CLOCK_PROF
can be used instead of getrusage(), its precision can be read using
clock_getres(). Something like "> #if defined(CLOCK_PROF) &&
defined(__FreeBSD__)" can be used. (By the way, "#if defined(__linux__)" may be
enough)
I read somewhere than CLOCK_PROF is the user+system CPU time of the *current
thread* on OpenBSD. I can be checked by the following unit test:
def test_process_time_threads(self):
class BusyThread(threading.Thread):
def run(self):
timeout = monotonic() + 1.0
loops = 1
while monotonic() < timeout:
i = 0
while i < loops:
i += 1
loops *= 2
t1 = process_time()
thread = BusyThread()
thread.start()
thread.join()
t2 = process_time()
self.assertGreater(t2 - t1, 0.9)
--
perf_counter() should remember if win32_perf_counter() failed or not, as the
pseudo-code of the PEP. I prefer to leave clock() unchanged to keep backward
compatibility.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue14428>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com