Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
580e0078
Commit
580e0078
authored
Feb 10, 2014
by
Serhiy Storchaka
Browse files
Options
Browse Files
Download
Plain Diff
issue12085: Use more Pythonic way to check _child_created.
_active shouldn't be cached, it set to None on shutdown.
parents
d667d72c
72e77613
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
7 deletions
+6
-7
Lib/subprocess.py
Lib/subprocess.py
+6
-7
No files found.
Lib/subprocess.py
View file @
580e0078
...
...
@@ -738,6 +738,9 @@ _PLATFORM_DEFAULT_CLOSE_FDS = object()
class
Popen
(
object
):
_child_created
=
False
# Set here since __del__ checks it
def
__init__
(
self
,
args
,
bufsize
=-
1
,
executable
=
None
,
stdin
=
None
,
stdout
=
None
,
stderr
=
None
,
preexec_fn
=
None
,
close_fds
=
_PLATFORM_DEFAULT_CLOSE_FDS
,
...
...
@@ -748,7 +751,6 @@ class Popen(object):
"""Create new Popen instance."""
_cleanup
()
self
.
_child_created
=
False
self
.
_input
=
None
self
.
_communication_started
=
False
if
bufsize
is
None
:
...
...
@@ -890,11 +892,8 @@ class Popen(object):
# Wait for the process to terminate, to avoid zombies.
self
.
wait
()
def
__del__
(
self
,
_maxsize
=
sys
.
maxsize
,
_active
=
_active
):
# If __init__ hasn't had a chance to execute (e.g. if it
# was passed an undeclared keyword argument), we don't
# have a _child_created attribute at all.
if
not
getattr
(
self
,
'_child_created'
,
False
):
def
__del__
(
self
,
_maxsize
=
sys
.
maxsize
):
if
not
self
.
_child_created
:
# We didn't get to successfully create a child process.
return
# In case the child hasn't been waited on, check if it's done.
...
...
@@ -1446,7 +1445,7 @@ class Popen(object):
_WTERMSIG
=
os
.
WTERMSIG
,
_WIFEXITED
=
os
.
WIFEXITED
,
_WEXITSTATUS
=
os
.
WEXITSTATUS
):
# This method is called (indirectly) by __del__, so it cannot
# refer to anything outside of its local scope.
"""
# refer to anything outside of its local scope.
if
_WIFSIGNALED
(
sts
):
self
.
returncode
=
-
_WTERMSIG
(
sts
)
elif
_WIFEXITED
(
sts
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment