File tree Expand file tree Collapse file tree 3 files changed +15
-1
lines changed Expand file tree Collapse file tree 3 files changed +15
-1
lines changed Original file line number Diff line number Diff line change 4949 "ExecResult" ,
5050)
5151
52- __version__ = "2.1.2 "
52+ __version__ = "2.1.3 "
5353__author__ = "Alexey Stepanov"
5454__author_email__ = "penguinolog@gmail.com"
5555__maintainers__ = {
Original file line number Diff line number Diff line change @@ -189,6 +189,13 @@ def poll_stderr() -> None:
189189 """Sync stderr poll."""
190190 result .read_stderr (src = stderr , log = logger , verbose = verbose )
191191
192+ def close_streams () -> None :
193+ """Enforce FIFO closure."""
194+ if stdout is not None and not stdout .closed :
195+ stdout .close ()
196+ if stderr is not None and not stderr .closed :
197+ stderr .close ()
198+
192199 # Store command with hidden data
193200 cmd_for_log = self ._mask_command (cmd = command , log_mask_re = log_mask_re )
194201
@@ -211,6 +218,7 @@ def poll_stderr() -> None:
211218 # Process closed?
212219 if exit_code is not None :
213220 result .exit_code = exit_code
221+ close_streams ()
214222 return result
215223 # Kill not ended process and wait for close
216224 try :
@@ -227,6 +235,8 @@ def poll_stderr() -> None:
227235 result .exit_code = exit_code
228236 return result
229237 raise # Some other error
238+ finally :
239+ close_streams ()
230240
231241 wait_err_msg = _log_templates .CMD_WAIT_ERROR .format (result = result , timeout = timeout )
232242 logger .debug (wait_err_msg )
Original file line number Diff line number Diff line change 3939class FakeFileStream (object ):
4040 def __init__ (self , * args ):
4141 self .__src = list (args )
42+ self .closed = False
4243
4344 def __iter__ (self ):
4445 for _ in range (len (self .__src )):
@@ -47,6 +48,9 @@ def __iter__(self):
4748 def fileno (self ):
4849 return hash (tuple (self .__src ))
4950
51+ def close (self ):
52+ self .closed = True
53+
5054
5155# Subprocess extra arguments.
5256# Flags from:
You can’t perform that action at this time.
0 commit comments