mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Un-complicate some code
This commit is contained in:
parent
dcdc3b4c5d
commit
47f14bade8
1 changed files with 5 additions and 15 deletions
|
@ -1092,15 +1092,9 @@ class Popen(object):
|
||||||
errread, errwrite)
|
errread, errwrite)
|
||||||
|
|
||||||
|
|
||||||
def _close_fds(self, but):
|
def _close_fds(self, fds_to_keep):
|
||||||
os.closerange(3, but)
|
|
||||||
os.closerange(but + 1, MAXFD)
|
|
||||||
|
|
||||||
|
|
||||||
def _close_all_but_a_sorted_few_fds(self, fds_to_keep):
|
|
||||||
# precondition: fds_to_keep must be sorted and unique
|
|
||||||
start_fd = 3
|
start_fd = 3
|
||||||
for fd in fds_to_keep:
|
for fd in sorted(fds_to_keep):
|
||||||
if fd >= start_fd:
|
if fd >= start_fd:
|
||||||
os.closerange(start_fd, fd)
|
os.closerange(start_fd, fd)
|
||||||
start_fd = fd + 1
|
start_fd = fd + 1
|
||||||
|
@ -1216,13 +1210,9 @@ class Popen(object):
|
||||||
|
|
||||||
# Close all other fds, if asked for
|
# Close all other fds, if asked for
|
||||||
if close_fds:
|
if close_fds:
|
||||||
if pass_fds:
|
fds_to_keep = set(pass_fds)
|
||||||
fds_to_keep = set(pass_fds)
|
fds_to_keep.add(errpipe_write)
|
||||||
fds_to_keep.add(errpipe_write)
|
self._close_fds(fds_to_keep)
|
||||||
self._close_all_but_a_sorted_few_fds(
|
|
||||||
sorted(fds_to_keep))
|
|
||||||
else:
|
|
||||||
self._close_fds(but=errpipe_write)
|
|
||||||
|
|
||||||
|
|
||||||
if cwd is not None:
|
if cwd is not None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue