fix file descriptor leak in cmd.run()

we were leaking pipes.
This commit is contained in:
Jörg Thalheim
2024-10-01 19:25:16 +02:00
parent f9a42831e4
commit 13aed0792e
2 changed files with 11 additions and 10 deletions

View File

@@ -120,23 +120,23 @@ def run(
tstart = datetime.datetime.now(tz=datetime.UTC)
# Start the subprocess
process = subprocess.Popen(
with subprocess.Popen(
cmd,
cwd=str(cwd),
env=env,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
stdout_buf, stderr_buf = handle_output(process, log)
) as process:
stdout_buf, stderr_buf = handle_output(process, log)
if input:
process.communicate(input)
else:
process.wait()
tend = datetime.datetime.now(tz=datetime.UTC)
if input:
process.communicate(input)
else:
process.wait()
tend = datetime.datetime.now(tz=datetime.UTC)
global TIME_TABLE
TIME_TABLE.add(shlex.join(cmd), tend - tstart)
global TIME_TABLE
TIME_TABLE.add(shlex.join(cmd), tend - tstart)
# Wait for the subprocess to finish
cmd_out = CmdOut(