Issue #10440: Support RUSAGE_THREAD as a constant in the resource module.

Patch by Robert Collins.
This commit is contained in:
Antoine Pitrou 2010-11-17 16:19:35 +00:00
parent dc817b229c
commit b6d4ee5361
4 changed files with 22 additions and 4 deletions

View File

@ -217,14 +217,14 @@ function to specify which processes information should be provided for.
.. data:: RUSAGE_SELF
:const:`RUSAGE_SELF` should be used to request information pertaining only to
the process itself.
Pass to :func:`getrusage` to request resources consumed by the calling
process, which is the sum of resources used by all threads in the process.
.. data:: RUSAGE_CHILDREN
Pass to :func:`getrusage` to request resource information for child processes of
the calling process.
Pass to :func:`getrusage` to request resources consumed by child processes
of the calling process which have been terminated and waited for.
.. data:: RUSAGE_BOTH
@ -232,3 +232,10 @@ function to specify which processes information should be provided for.
Pass to :func:`getrusage` to request resources consumed by both the current
process and child processes. May not be available on all systems.
.. data:: RUSAGE_THREAD
Pass to :func:`getrusage` to request resources consumed by the current
thread. May not be available on all systems.
.. versionadded:: 3.2

View File

@ -102,6 +102,10 @@ class ResourceTest(unittest.TestCase):
usageboth = resource.getrusage(resource.RUSAGE_BOTH)
except (ValueError, AttributeError):
pass
try:
usage_thread = resource.getrusage(resource.RUSAGE_THREAD)
except (ValueError, AttributeError):
pass
def test_main(verbose=None):
support.run_unittest(ResourceTest)

View File

@ -13,6 +13,9 @@ Core and Builtins
Library
-------
- Issue #10440: Support RUSAGE_THREAD as a constant in the resource module.
Patch by Robert Collins.
- Issue #10429: IMAP.starttls() stored the capabilities as bytes objects,
rather than strings.

View File

@ -325,6 +325,10 @@ PyInit_resource(void)
PyModule_AddIntConstant(m, "RUSAGE_BOTH", RUSAGE_BOTH);
#endif
#ifdef RUSAGE_THREAD
PyModule_AddIntConstant(m, "RUSAGE_THREAD", RUSAGE_THREAD);
#endif
#if defined(HAVE_LONG_LONG)
if (sizeof(RLIM_INFINITY) > sizeof(long)) {
v = PyLong_FromLongLong((PY_LONG_LONG) RLIM_INFINITY);