
    )`i                     l    d Z ddlZddlZddlZddlZddlmZ  ej        e          Z	d	dede
ddfdZdS )
z;
POSIX-specific functionality for stdio client operations.
    N)Process       @processtimeout_secondsreturnc                 N  K   t          | dd          pt          t          | dd          dd          }|sdS 	 t          j        |          }t          j        |t          j                   t          j        |          5  	 	 t          j        |d           t          j        d           d{V  n# t          $ r Y ddd           dS w xY wN# 1 swxY w Y   	 t          j        |t          j
                   dS # t          $ r Y dS w xY w# t          t          t          f$ r}t                              d| d| d	           	 |                                  t          j        |          5  |                                  d{V  ddd           n# 1 swxY w Y   nq# t$          $ rd t                              d
| d           	 |                                  n-# t$          $ r  t                              d|            Y nw xY wY n
w xY wY d}~dS Y d}~dS d}~ww xY w)a  
    Terminate a process and all its children on POSIX systems.

    Uses os.killpg() for atomic process group termination.

    Args:
        process: The process to terminate
        timeout_seconds: Timeout in seconds before force killing (default: 2.0)
    pidNpopenTr   g?z)Process group termination failed for PID z: z", falling back to simple terminatez#Process termination failed for PID z, attempting force killzFailed to kill process )getattrosgetpgidkillpgsignalSIGTERManyiomove_on_aftersleepProcessLookupErrorSIGKILLPermissionErrorOSErrorloggerwarning	terminate
fail_afterwait	Exceptionkill	exception)r   r   r	   pgides        j/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/mcp/os/posix/utilities.pyterminate_posix_process_treer#      s      '5$
'
'
`777GT3R3RTY[_+`+`C  	Bz#
	$''' 11 	 	IdA&&&+c**********)   	 	 	 	 	 	 	 		 	 	 	 	 	 	 		IdFN+++++! 	 	 	DD	 9 B B Bo3oo!oooppp		B!/22 % %llnn$$$$$$$% % % % % % % % % % % % % % % 	B 	B 	BNN]]]]^^^B B B B  !@3!@!@AAAAAB		B            Bs   AD  C/B32C3
C=C>D CCCD CD C= =
DD 
DD H$%!H(F"/F
F"F	F"F	F"!H"(HG H 'H
H	H

HHHHH$)r   )__doc__loggingr   r   r   	anyio.abcr   	getLogger__name__r   floatr#        r"   <module>r,      s      				        		8	$	$-B -B -B% -BZ^ -B -B -B -B -B -Br+   