[Python-checkins] cpython: Issue #19343: Expose FreeBSD-specific APIs in resource module. Original patch

christian.heimes python-checkins at python.org
Sun Dec 8 14:36:15 CET 2013


http://hg.python.org/cpython/rev/ad2cd599f1cf
changeset: 87829:ad2cd599f1cf
user: Christian Heimes <christian at cheimes.de>
date: Sun Dec 08 14:35:55 2013 +0100
summary:
 Issue #19343: Expose FreeBSD-specific APIs in resource module. Original patch by Koobs.
files:
 Doc/library/resource.rst | 28 +++++++++++++++++++++++++++
 Lib/test/test_resource.py | 6 +++++
 Misc/NEWS | 3 ++
 Modules/resource.c | 14 +++++++++++++
 4 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/Doc/library/resource.rst b/Doc/library/resource.rst
--- a/Doc/library/resource.rst
+++ b/Doc/library/resource.rst
@@ -217,6 +217,34 @@
 
 .. 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
--- a/Lib/test/test_resource.py
+++ b/Lib/test/test_resource.py
@@ -138,6 +138,12 @@
 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):
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,9 @@
 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
--- a/Modules/resource.c
+++ b/Modules/resource.c
@@ -424,6 +424,20 @@
 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);
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /