Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Kirill Smelkov
cpython
Commits
85fdfa85
Commit
85fdfa85
authored
13 years ago
by
Victor Stinner
Browse files
Options
Download
Email Patches
Plain Diff
Issue #13847: time.clock() now raises a RuntimeError if the processor time used
is not available or its value cannot be represented
parent
e9cd9005
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
12 deletions
+29
-12
Misc/NEWS
Misc/NEWS
+2
-1
Modules/timemodule.c
Modules/timemodule.c
+27
-11
No files found.
Misc/NEWS
View file @
85fdfa85
...
@@ -463,7 +463,8 @@ Library
...
@@ -463,7 +463,8 @@ Library
-
Issue
#
13847
:
time
.
localtime
()
and
time
.
gmtime
()
now
raise
an
OSError
instead
-
Issue
#
13847
:
time
.
localtime
()
and
time
.
gmtime
()
now
raise
an
OSError
instead
of
ValueError
on
failure
.
time
.
ctime
()
and
time
.
asctime
()
now
raises
an
of
ValueError
on
failure
.
time
.
ctime
()
and
time
.
asctime
()
now
raises
an
OSError
if
localtime
()
failed
.
OSError
if
localtime
()
failed
.
time
.
clock
()
now
raises
a
RuntimeError
if
the
processor
time
used
is
not
available
or
its
value
cannot
be
represented
-
Issue
#
13862
:
Fix
spurious
failure
in
test_zlib
due
to
runtime
/
compile
time
-
Issue
#
13862
:
Fix
spurious
failure
in
test_zlib
due
to
runtime
/
compile
time
minor
versions
not
matching
.
minor
versions
not
matching
.
...
...
This diff is collapsed.
Click to expand it.
Modules/timemodule.c
View file @
85fdfa85
...
@@ -62,6 +62,31 @@ PyDoc_STRVAR(time_doc,
...
@@ -62,6 +62,31 @@ PyDoc_STRVAR(time_doc,
Return the current time in seconds since the Epoch.
\n
\
Return the current time in seconds since the Epoch.
\n
\
Fractions of a second may be present if the system clock provides them."
);
Fractions of a second may be present if the system clock provides them."
);
#if defined(HAVE_CLOCK)
#ifndef CLOCKS_PER_SEC
#ifdef CLK_TCK
#define CLOCKS_PER_SEC CLK_TCK
#else
#define CLOCKS_PER_SEC 1000000
#endif
#endif
static
PyObject
*
pyclock
(
void
)
{
clock_t
value
;
value
=
clock
();
if
(
value
==
(
clock_t
)
-
1
)
{
PyErr_SetString
(
PyExc_RuntimeError
,
"the processor time used is not available "
"or its value cannot be represented"
);
return
NULL
;
}
return
PyFloat_FromDouble
((
double
)
value
/
CLOCKS_PER_SEC
);
}
#endif
/* HAVE_CLOCK */
#if defined(MS_WINDOWS) && !defined(__BORLANDC__)
#if defined(MS_WINDOWS) && !defined(__BORLANDC__)
/* Win32 has better clock replacement; we have our own version, due to Mark
/* Win32 has better clock replacement; we have our own version, due to Mark
Hammond and Tim Peters */
Hammond and Tim Peters */
...
@@ -79,8 +104,7 @@ time_clock(PyObject *self, PyObject *unused)
...
@@ -79,8 +104,7 @@ time_clock(PyObject *self, PyObject *unused)
if
(
!
QueryPerformanceFrequency
(
&
freq
)
||
freq
.
QuadPart
==
0
)
{
if
(
!
QueryPerformanceFrequency
(
&
freq
)
||
freq
.
QuadPart
==
0
)
{
/* Unlikely to happen - this works on all intel
/* Unlikely to happen - this works on all intel
machines at least! Revert to clock() */
machines at least! Revert to clock() */
return
PyFloat_FromDouble
(((
double
)
clock
())
/
return
pyclock
();
CLOCKS_PER_SEC
);
}
}
divisor
=
(
double
)
freq
.
QuadPart
;
divisor
=
(
double
)
freq
.
QuadPart
;
}
}
...
@@ -91,18 +115,10 @@ time_clock(PyObject *self, PyObject *unused)
...
@@ -91,18 +115,10 @@ time_clock(PyObject *self, PyObject *unused)
#elif defined(HAVE_CLOCK)
#elif defined(HAVE_CLOCK)
#ifndef CLOCKS_PER_SEC
#ifdef CLK_TCK
#define CLOCKS_PER_SEC CLK_TCK
#else
#define CLOCKS_PER_SEC 1000000
#endif
#endif
static
PyObject
*
static
PyObject
*
time_clock
(
PyObject
*
self
,
PyObject
*
unused
)
time_clock
(
PyObject
*
self
,
PyObject
*
unused
)
{
{
return
PyFloat_FromDouble
(((
double
)
clock
())
/
CLOCKS_PER_SEC
);
return
pyclock
(
);
}
}
#endif
/* HAVE_CLOCK */
#endif
/* HAVE_CLOCK */
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment