diff options
author | Antoine Pitrou <pitrou@free.fr> | 2017-07-22 11:22:54 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-22 11:22:54 (GMT) |
commit | 896145d9d266ee2758cfcd7691238cbc1f9e1ab8 (patch) | |
tree | 3b36a7020108c7305a478e174d8a73cdd6deb540 /Lib/test/libregrtest/refleak.py | |
parent | 616ecf18f3aacbd8d172e01673877b22fe946e54 (diff) | |
download | cpython-896145d9d266ee2758cfcd7691238cbc1f9e1ab8.zip cpython-896145d9d266ee2758cfcd7691238cbc1f9e1ab8.tar.gz cpython-896145d9d266ee2758cfcd7691238cbc1f9e1ab8.tar.bz2 |
bpo-26732: fix too many fds in processes started with the "forkserver" method (#2813)
* bpo-26732: fix too many fds in processes started with the "forkserver" method
A child process would inherit as many fds as the number of still-running children.
* Add blurb and test comment
Diffstat (limited to 'Lib/test/libregrtest/refleak.py')
-rw-r--r-- | Lib/test/libregrtest/refleak.py | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/Lib/test/libregrtest/refleak.py b/Lib/test/libregrtest/refleak.py index 8e93816..efe5210 100644 --- a/Lib/test/libregrtest/refleak.py +++ b/Lib/test/libregrtest/refleak.py @@ -7,36 +7,6 @@ from inspect import isabstract from test import support -try: - MAXFD = os.sysconf("SC_OPEN_MAX") -except Exception: - MAXFD = 256 - - -def fd_count(): - """Count the number of open file descriptors""" - if sys.platform.startswith(('linux', 'freebsd')): - try: - names = os.listdir("/proc/self/fd") - return len(names) - except FileNotFoundError: - pass - - count = 0 - for fd in range(MAXFD): - try: - # Prefer dup() over fstat(). fstat() can require input/output - # whereas dup() doesn't. - fd2 = os.dup(fd) - except OSError as e: - if e.errno != errno.EBADF: - raise - else: - os.close(fd2) - count += 1 - return count - - def dash_R(the_module, test, indirect_test, huntrleaks): """Run a test multiple times, looking for reference leaks. @@ -174,7 +144,7 @@ def dash_R_cleanup(fs, ps, pic, zdc, abcs): func1 = sys.getallocatedblocks func2 = sys.gettotalrefcount gc.collect() - return func1(), func2(), fd_count() + return func1(), func2(), support.fd_count() def clear_caches(): |