Skip to content

Commit fa9a425

Browse files
gh-142195: Fixed Popen.communicate indefinite loops (GH-143203)
Changed condition to evaluate if timeout is less than or equals to 0. This is needed for simulated time environments such as Shadow where the time will match exactly on the boundary. --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
1 parent c3bfe5d commit fa9a425

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

Lib/subprocess.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2140,7 +2140,7 @@ def _communicate(self, input, endtime, orig_timeout):
21402140

21412141
while selector.get_map():
21422142
timeout = self._remaining_time(endtime)
2143-
if timeout is not None and timeout < 0:
2143+
if timeout is not None and timeout <= 0:
21442144
self._check_timeout(endtime, orig_timeout,
21452145
stdout, stderr,
21462146
skip_check_and_raise=True)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Updated timeout evaluation logic in :mod:`subprocess` to be compatible with deterministic environments like Shadow where time moves exactly as requested.

0 commit comments

Comments
 (0)