30 lines
1.4 KiB
Diff
30 lines
1.4 KiB
Diff
diff -up firefox-140.1.0/testing/mozbase/mozprocess/mozprocess/processhandler.py.exceptionHandled-for-IO-error-processhandler firefox-140.1.0/testing/mozbase/mozprocess/mozprocess/processhandler.py
|
|
--- firefox-140.1.0/testing/mozbase/mozprocess/mozprocess/processhandler.py.exceptionHandled-for-IO-error-processhandler 2025-07-14 19:14:55.000000000 +0200
|
|
+++ firefox-140.1.0/testing/mozbase/mozprocess/mozprocess/processhandler.py 2025-08-05 18:05:54.329479764 +0200
|
|
@@ -1098,11 +1098,22 @@ class ProcessReader:
|
|
|
|
def _read_stream(self, stream, queue, callback):
|
|
sentinel = "" if isinstance(stream, io.TextIOBase) else b""
|
|
- for line in iter(stream.readline, sentinel):
|
|
- queue.put((line, callback))
|
|
+ try:
|
|
+ for line in iter(stream.readline, sentinel):
|
|
+ queue.put((line, callback))
|
|
+ except ValueError as e:
|
|
+ if "I/O operation on closed file" in str(e):
|
|
+ # Stream was closed by the process, this is normal
|
|
+ pass
|
|
+ else:
|
|
+ raise
|
|
# Give a chance to the reading loop to exit without a timeout.
|
|
queue.put((b"", None))
|
|
- stream.close()
|
|
+ try:
|
|
+ stream.close()
|
|
+ except ValueError:
|
|
+ # Stream might already be closed
|
|
+ pass
|
|
|
|
def start(self, proc):
|
|
queue = Queue()
|