diff options
author | Christian Heimes <christian@cheimes.de> | 2013-12-08 13:35:55 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2013-12-08 13:35:55 (GMT) |
commit | 5bb414d176b5c99d9f2500738fe77c47ea938763 (patch) | |
tree | 84b7bfa89c46eb75e08ddb25ba174ac2b769271e | |
parent | ead8d0858b326ec8d902dc597aa3da23e4c5a82b (diff) | |
download | cpython-5bb414d176b5c99d9f2500738fe77c47ea938763.zip cpython-5bb414d176b5c99d9f2500738fe77c47ea938763.tar.gz cpython-5bb414d176b5c99d9f2500738fe77c47ea938763.tar.bz2 |
Issue #19343: Expose FreeBSD-specific APIs in resource module. Original patch by Koobs.
-rw-r--r-- | Doc/library/resource.rst | 28 | ||||
-rw-r--r-- | Lib/test/test_resource.py | 6 | ||||
-rw-r--r-- | Misc/NEWS | 3 | ||||
-rw-r--r-- | Modules/resource.c | 14 |
4 files changed, 51 insertions, 0 deletions
diff --git a/Doc/library/resource.rst b/Doc/library/resource.rst index 9bb5848..f8112cc 100644 --- a/Doc/library/resource.rst +++ b/Doc/library/resource.rst @@ -217,6 +217,34 @@ platform. .. versionadded:: 3.4 +.. data:: RLIMIT_SBSIZE + + The maximum size (in bytes) of socket buffer usage for this user. + This limits the amount of network memory, and hence the amount of mbufs, + that this user may hold at any time. + + Availability: FreeBSD 9 or later. + + .. versionadded:: 3.4 + +.. data:: RLIMIT_SWAP + + The maximum size (in bytes) of the swap space that may be reserved or + used by all of this user id's processes. + This limit is enforced only if bit 1 of the vm.overcommit sysctl is set. + Please see :manpage:`tuning(7)` for a complete description of this sysctl. + + Availability: FreeBSD 9 or later. + + .. versionadded:: 3.4 + +.. data:: RLIMIT_NPTS + + The maximum number of pseudo-terminals created by this user id. + + Availability: FreeBSD 9 or later. + + .. versionadded:: 3.4 Resource Usage -------------- diff --git a/Lib/test/test_resource.py b/Lib/test/test_resource.py index 006198f..2ecae0f 100644 --- a/Lib/test/test_resource.py +++ b/Lib/test/test_resource.py @@ -138,6 +138,12 @@ class ResourceTest(unittest.TestCase): with contextlib.suppress(AttributeError): self.assertIsInstance(getattr(resource, 'RLIMIT_' + attr), int) + @support.requires_freebsd_version(9) + def test_freebsd_contants(self): + for attr in ['SWAP', 'SBSIZE', 'NPTS']: + with contextlib.suppress(AttributeError): + self.assertIsInstance(getattr(resource, 'RLIMIT_' + attr), int) + @unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit') @support.requires_linux_version(2, 6, 36) def test_prlimit(self): @@ -18,6 +18,9 @@ Core and Builtins Library ------- +- Issue #19343: Expose FreeBSD-specific APIs in resource module. Original + patch by Koobs. + - Issue #19506: Use a memoryview to avoid a data copy when piping data to stdin within subprocess.Popen.communicate. 5-10% less cpu usage. diff --git a/Modules/resource.c b/Modules/resource.c index c12ce34..3a1cf09 100644 --- a/Modules/resource.c +++ b/Modules/resource.c @@ -424,6 +424,20 @@ PyInit_resource(void) PyModule_AddIntMacro(m, RUSAGE_THREAD); #endif +/* FreeBSD specific */ + +#ifdef RLIMIT_SWAP + PyModule_AddIntMacro(m, RLIMIT_SWAP); +#endif + +#ifdef RLIMIT_SBSIZE + PyModule_AddIntMacro(m, RLIMIT_SBSIZE); +#endif + +#ifdef RLIMIT_NPTS + PyModule_AddIntMacro(m, RLIMIT_NPTS); +#endif + #if defined(HAVE_LONG_LONG) if (sizeof(RLIM_INFINITY) > sizeof(long)) { v = PyLong_FromLongLong((PY_LONG_LONG) RLIM_INFINITY); |