File tree Expand file tree Collapse file tree 2 files changed +6
-28
lines changed Expand file tree Collapse file tree 2 files changed +6
-28
lines changed Original file line number Diff line number Diff line change 1616from .win32 import (
1717 create_windows_process ,
1818 get_windows_executable_command ,
19- terminate_windows_process ,
2019)
2120
2221# Environment variables to inherit by default
@@ -180,10 +179,12 @@ async def stdin_writer():
180179 finally :
181180 # Clean up process to prevent any dangling orphaned processes
182181 try :
183- if sys .platform == "win32" :
184- await terminate_windows_process (process )
185- else :
186- process .terminate ()
182+ process .terminate ()
183+ with anyio .fail_after (2.0 ):
184+ await process .wait ()
185+ except TimeoutError :
186+ # If process doesn't terminate in time, force kill it
187+ process .kill ()
187188 except ProcessLookupError :
188189 # Process already exited, which is fine
189190 pass
Original file line number Diff line number Diff line change 88from pathlib import Path
99from typing import BinaryIO , TextIO , cast
1010
11- import anyio
1211from anyio import to_thread
13- from anyio .abc import Process
1412from anyio .streams .file import FileReadStream , FileWriteStream
1513
1614
@@ -159,24 +157,3 @@ async def create_windows_process(
159157 bufsize = 0 ,
160158 )
161159 return FallbackProcess (popen_obj )
162-
163-
164- async def terminate_windows_process (process : Process | FallbackProcess ):
165- """
166- Terminate a Windows process.
167-
168- Note: On Windows, terminating a process with process.terminate() doesn't
169- always guarantee immediate process termination.
170- So we give it 2s to exit, or we call process.kill()
171- which sends a SIGKILL equivalent signal.
172-
173- Args:
174- process: The process to terminate
175- """
176- try :
177- process .terminate ()
178- with anyio .fail_after (2.0 ):
179- await process .wait ()
180- except TimeoutError :
181- # Force kill if it doesn't terminate
182- process .kill ()
You can’t perform that action at this time.
0 commit comments