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 16
16
from .win32 import (
17
17
create_windows_process ,
18
18
get_windows_executable_command ,
19
- terminate_windows_process ,
20
19
)
21
20
22
21
# Environment variables to inherit by default
@@ -180,10 +179,12 @@ async def stdin_writer():
180
179
finally :
181
180
# Clean up process to prevent any dangling orphaned processes
182
181
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 ()
187
188
except ProcessLookupError :
188
189
# Process already exited, which is fine
189
190
pass
Original file line number Diff line number Diff line change 8
8
from pathlib import Path
9
9
from typing import BinaryIO , TextIO , cast
10
10
11
- import anyio
12
11
from anyio import to_thread
13
- from anyio .abc import Process
14
12
from anyio .streams .file import FileReadStream , FileWriteStream
15
13
16
14
@@ -159,24 +157,3 @@ async def create_windows_process(
159
157
bufsize = 0 ,
160
158
)
161
159
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