Issue #19343: Expose FreeBSD-specific APIs in resource module. Original patch by Koobs.
This commit is contained in:
parent
ead8d0858b
commit
5bb414d176
|
@ -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
|
||||
--------------
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue