Issue #19324: Expose Linux-specific constants in resource module

This commit is contained in:
Christian Heimes 2013-10-22 11:09:27 +02:00
parent d1d7576fb4
commit 6fc79bf813
4 changed files with 80 additions and 0 deletions

View file

@ -151,6 +151,52 @@ platform.
The maximum area (in bytes) of address space which may be taken by the process. The maximum area (in bytes) of address space which may be taken by the process.
.. data:: RLIMIT_MSGQUEUE
The number of bytes that can be allocated for POSIX message queues.
Availability: Linux 2.6.8 or later.
.. versionadded:: 3.4
.. data:: RLIMIT_NICE
The ceiling for the process's nice level (calculated as 20 - rlim_cur).
Availability: Linux 2.6.12 or later.
.. versionadded:: 3.4
.. data:: RLIMIT_RTPRIO
The ceiling of the real-time priority.
Availability: Linux 2.6.12 or later.
.. versionadded:: 3.4
.. data:: RLIMIT_RTTIME
The time limit (in microseconds) on CPU time that a process can spend
under real-time scheduling without making a blocking syscall.
Availability: Linux 2.6.25 or later.
.. versionadded:: 3.4
.. data:: RLIMIT_SIGPENDING
The number of signals which the process may queue.
Availability: Linux 2.6.8 or later.
.. versionadded:: 3.4
Resource Usage Resource Usage
-------------- --------------

View file

@ -1,3 +1,4 @@
import sys
import unittest import unittest
from test import support from test import support
import time import time
@ -129,6 +130,15 @@ class ResourceTest(unittest.TestCase):
self.assertIsInstance(pagesize, int) self.assertIsInstance(pagesize, int)
self.assertGreaterEqual(pagesize, 0) self.assertGreaterEqual(pagesize, 0)
@unittest.skipUnless(sys.platform == 'linux', 'test requires Linux')
def test_linux_constants(self):
self.assertIsInstance(resource.RLIMIT_MSGQUEUE, int)
self.assertIsInstance(resource.RLIMIT_NICE, int)
self.assertIsInstance(resource.RLIMIT_RTPRIO, int)
self.assertIsInstance(resource.RLIMIT_RTTIME, int)
self.assertIsInstance(resource.RLIMIT_SIGPENDING, int)
def test_main(verbose=None): def test_main(verbose=None):
support.run_unittest(ResourceTest) support.run_unittest(ResourceTest)

View file

@ -19,6 +19,8 @@ Core and Builtins
Library Library
------- -------
- Issue #19324: Expose Linux-specific constants in resource module.
- Issue #17400: ipaddress should make it easy to identify rfc6598 addresses. - Issue #17400: ipaddress should make it easy to identify rfc6598 addresses.
- Load SSL's error strings in hashlib. - Load SSL's error strings in hashlib.

View file

@ -326,6 +326,28 @@ PyInit_resource(void)
PyModule_AddIntMacro(m, RLIMIT_SBSIZE); PyModule_AddIntMacro(m, RLIMIT_SBSIZE);
#endif #endif
/* Linux specific */
#ifdef RLIMIT_MSGQUEUE
PyModule_AddIntMacro(m, RLIMIT_MSGQUEUE);
#endif
#ifdef RLIMIT_NICE
PyModule_AddIntMacro(m, RLIMIT_NICE);
#endif
#ifdef RLIMIT_RTPRIO
PyModule_AddIntMacro(m, RLIMIT_RTPRIO);
#endif
#ifdef RLIMIT_RTTIME
PyModule_AddIntMacro(m, RLIMIT_RTTIME);
#endif
#ifdef RLIMIT_SIGPENDING
PyModule_AddIntMacro(m, RLIMIT_SIGPENDING);
#endif
/* target */
#ifdef RUSAGE_SELF #ifdef RUSAGE_SELF
PyModule_AddIntMacro(m, RUSAGE_SELF); PyModule_AddIntMacro(m, RUSAGE_SELF);
#endif #endif