diff --git a/rdagent/utils/env.py b/rdagent/utils/env.py index 178ca20e..dd4a8e1e 100644 --- a/rdagent/utils/env.py +++ b/rdagent/utils/env.py @@ -440,15 +440,18 @@ class LocalEnv(Env[ASpecificLocalConf]): for fd, event in events: if event & select.POLLIN: if fd == stdout_fd: - output = process.stdout.readline() - if output: + while True: + output = process.stdout.readline() + if output == "": + break Console().print(output.strip(), markup=False) combined_output += output elif fd == stderr_fd: - chunk = os.read(stderr_fd, 4096) - if chunk: - error = chunk.decode(errors="replace") - Console().print(error, end="", markup=False) + while True: + error = process.stderr.readline() + if error == "": + break + Console().print(error.strip(), markup=False) combined_output += error # Capture any final output