@@ -188,10 +188,20 @@ async def connect_stdout():
188188
189189    @override  
190190    def  _connect_child (self , argv : List [str ]) ->  None :
191+         def  get_child_watcher ():
192+             try :
193+                 return  asyncio .get_child_watcher ()
194+             except  AttributeError :  # Python 3.14 
195+                 return  None 
196+ 
197+             return  None 
198+ 
191199        if  os .name  !=  'nt' :
192200            # see #238, #241 
193-             self ._child_watcher  =  asyncio .get_child_watcher ()
194-             self ._child_watcher .attach_loop (self ._loop )
201+             watcher  =  get_child_watcher ()
202+             if  watcher  is  not None :
203+                 watcher .attach_loop (self ._loop )
204+                 self ._child_watcher  =  watcher 
195205
196206        async  def  create_subprocess ():
197207            transport : asyncio .SubprocessTransport   # type: ignore 
@@ -250,7 +260,8 @@ def _close_transport(transport):
250260            # Windows: for ProactorBasePipeTransport, close() doesn't take in 
251261            # effect immediately (closing happens asynchronously inside the 
252262            # event loop), need to wait a bit for completing graceful shutdown. 
253-             if  os .name  ==  'nt'  and  hasattr (transport , '_sock' ):
263+             if  (sys .version_info  <  (3 , 13 ) and 
264+                     os .name  ==  'nt'  and  hasattr (transport , '_sock' )):
254265                async  def  wait_until_closed ():
255266                    # pylint: disable-next=protected-access 
256267                    while  transport ._sock  is  not None :
0 commit comments