
    Yf                     x    d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
  e            ZdZ G d d	          Zd
S )zd
Cross-platform process-related functionality used by different
L{IReactorProcess} implementations.
    )Optional)Logger)getWarningMethod)Failure)qualzUSince Twisted 8.2, IProcessProtocol.processExited is required.  %s must implement it.c                   d    e Zd ZU dZee         ed<   dZee         ed<   dZdZ	d Z
d Zd Zd ZdS )	BaseProcessNpidstatusr   c                     || _         d S )N)proto)selfprotocols     O/var/www/html/env/lib/python3.11/site-packages/twisted/internet/_baseprocess.py__init__zBaseProcess.__init__   s    


    c                 n   t                      }t          | j        d|          }||u rA t                      t          t          | j        j                  fz  t          d           d S t          	                    d          5   |t          |                     d d d            d S # 1 swxY w Y   d S )NprocessExitedr   )
stacklevelzwhile calling processExited:)objectgetattrr   r   _missingProcessExitedr   	__class__DeprecationWarning_logfailuresHandledr   )r   reasondefaultr   s       r   _callProcessExitedzBaseProcess._callProcessExited"   s   ((
OWEEG##%dj.B)C)C(EE"      %%&DEE / /gfoo.../ / / / / / / / / / / / / / / / / /s   B**B.1B.c                     || _         | xj        dz  c_        d| _        |                     |                     |                     |                                  dS )z;
        This is called when the child terminates.
           N)r   lostProcessr
   r   
_getReasonmaybeCallProcessEnded)r   r   s     r   processEndedzBaseProcess.processEnded/   s^     A 7 7888""$$$$$r   c                    | j         |                     | j                  }| j         }d| _         t                              d          5  |                    t          |                     ddd           dS # 1 swxY w Y   dS dS )zD
        Call processEnded on protocol after final cleanup.
        Nzwhile calling processEnded:)r   r#   r   r   r   r%   r   )r   r   r   s      r   r$   z!BaseProcess.maybeCallProcessEnded9   s     :!__T[11FJEDJ%%&CDD 4 4""76??3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4	 "!s   
#A::A>A>)__name__
__module____qualname__r
   r   int__annotations__r   r"   r   r   r   r%   r$    r   r   r	   r	      s         C# FHSM   KE  / / /% % %	4 	4 	4 	4 	4r   r	   N)__doc__typingr   twisted.loggerr   twisted.python.deprecater   twisted.python.failurer   twisted.python.reflectr   r   r   r	   r,   r   r   <module>r3      s   
 
       ! ! ! ! ! ! 5 5 5 5 5 5 * * * * * * ' ' ' ' ' 'vxx* )4 )4 )4 )4 )4 )4 )4 )4 )4 )4r   