Skip to content

Commit ee51f93

Browse files
prithviraj-chaudhuriblurb-it[bot]
authored andcommitted
pythongh-142195: Fixed Popen.communicate indefinite loops (pythonGH-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 5d2dc2b commit ee51f93

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)