Skip to content

Commit 7a6dfaa

Browse files
prithviraj-chaudhuriblurb-it[bot]
authored andcommitted
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. --------- (cherry picked from commit fa9a425) Co-authored-by: Prithviraj Chaudhuri <p.chaudhuri1993@gmail.com> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
1 parent 4c3e211 commit 7a6dfaa

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
@@ -2141,7 +2141,7 @@ def _communicate(self, input, endtime, orig_timeout):
21412141

21422142
while selector.get_map():
21432143
timeout = self._remaining_time(endtime)
2144-
if timeout is not None and timeout < 0:
2144+
if timeout is not None and timeout <= 0:
21452145
self._check_timeout(endtime, orig_timeout,
21462146
stdout, stderr,
21472147
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)