
    {h                     n    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y)	z;
POSIX-specific functionality for stdio client operations.
    N)Processprocesstimeout_secondsreturnc                   K   t        | dd      xs t        t        | dd      dd      }|sy	 t        j                  |      }t        j                  |t        j
                         t        j                  |      5  	 	 t        j                  |d       t        j                  d       d{    57 # t        $ r Y ddd       yw xY w# 1 sw Y   nxY w	 t        j                  |t        j                         y# t        $ r Y yw xY w# t        t        t        f$ r}t        j                  d| d| d       	 | j                          t        j                   |      5  | j#                          d{  7   ddd       n# 1 sw Y   nxY wnf# t$        $ rU t        j                  d	| d
       	 | j'                          n'# t$        $ r t        j)                  d|        Y nw xY wY nw xY wY d}~yY d}~yd}~ww xY w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popenr   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        W/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/mcp/os/posix/utilities.pyterminate_posix_process_treer"      s     '5$
'
`777GT3RTY[_+`C 	Bzz#
		$'  1 	IIdA&++c***	  +) 	 		 		IIdFNN+! 		 9 BB3%r!Lnop		B!!/2 %lln$$% % % 	BNN@E\]^B B  #:3%!@AB		BBs  +HAD <C?.B5-B3.B52C3B55	C	>C?D HC		CCD $C> =H>	D
D H	D

D H!G>>%F#F7E:8F=	FF	FG>"G16GG1!G+(G1*G++G1.G>0G11G>4
H>HH)g       @)__doc__loggingr   r   r   	anyio.abcr   	getLogger__name__r   floatr"        r!   <module>r+      sL     	   			8	$-B -B% -BZ^ -Br*   