mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #19343: Expose FreeBSD-specific APIs in resource module. Original patch by Koobs.
This commit is contained in:
parent
ead8d0858b
commit
5bb414d176
4 changed files with 51 additions and 0 deletions
|
@ -217,6 +217,34 @@ platform.
|
||||||
|
|
||||||
.. versionadded:: 3.4
|
.. 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
|
Resource Usage
|
||||||
--------------
|
--------------
|
||||||
|
|
|
@ -138,6 +138,12 @@ class ResourceTest(unittest.TestCase):
|
||||||
with contextlib.suppress(AttributeError):
|
with contextlib.suppress(AttributeError):
|
||||||
self.assertIsInstance(getattr(resource, 'RLIMIT_' + attr), int)
|
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')
|
@unittest.skipUnless(hasattr(resource, 'prlimit'), 'no prlimit')
|
||||||
@support.requires_linux_version(2, 6, 36)
|
@support.requires_linux_version(2, 6, 36)
|
||||||
def test_prlimit(self):
|
def test_prlimit(self):
|
||||||
|
|
|
@ -18,6 +18,9 @@ Core and Builtins
|
||||||
Library
|
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
|
- Issue #19506: Use a memoryview to avoid a data copy when piping data
|
||||||
to stdin within subprocess.Popen.communicate. 5-10% less cpu usage.
|
to stdin within subprocess.Popen.communicate. 5-10% less cpu usage.
|
||||||
|
|
||||||
|
|
|
@ -424,6 +424,20 @@ PyInit_resource(void)
|
||||||
PyModule_AddIntMacro(m, RUSAGE_THREAD);
|
PyModule_AddIntMacro(m, RUSAGE_THREAD);
|
||||||
#endif
|
#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 defined(HAVE_LONG_LONG)
|
||||||
if (sizeof(RLIM_INFINITY) > sizeof(long)) {
|
if (sizeof(RLIM_INFINITY) > sizeof(long)) {
|
||||||
v = PyLong_FromLongLong((PY_LONG_LONG) RLIM_INFINITY);
|
v = PyLong_FromLongLong((PY_LONG_LONG) RLIM_INFINITY);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue