Ë
    ojÓ  ã                   ó\   — 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
 dZ G d„ d	«      Zy
)zd
Cross-platform process-related functionality used by different
L{IReactorProcess} implementations.
é    )ÚOptional)ÚgetWarningMethod)ÚFailure)Úerr)ÚqualzUSince Twisted 8.2, IProcessProtocol.processExited is required.  %s must implement it.c                   óV   — 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y)	ÚBaseProcessNÚpidÚstatusr   c                 ó   — || _         y )N)Úproto)ÚselfÚprotocols     ú?/usr/lib/python3/dist-packages/twisted/internet/_baseprocess.pyÚ__init__zBaseProcess.__init__   s	   € Øˆ�
ó    c                 ó"  — t        «       }t        | j                  d|«      }||u r= t        «       t        t        | j                  j                  «      fz  t        d¬«       y 	  |t        |«      «       y # t        $ r t        d d«       Y y w xY w)NÚprocessExitedr   )Ú
stacklevelz!unexpected error in processExited)ÚobjectÚgetattrr   r   Ú_missingProcessExitedr   Ú	__class__ÚDeprecationWarningr   ÚBaseExceptionr   )r   ÚreasonÚdefaultr   s       r   Ú_callProcessExitedzBaseProcess._callProcessExited    s|   € Ü“(ˆÜ §
¡
¨O¸WÓEˆØ˜GÑ#ØÔÓÜ%¬¨d¯j©j×.BÑ.BÓ)CÐ(EÑEÜ"Øöð?Ùœg f›oÕ.øÜ ò ?Ü�DÐ=Ö>ð?ús   Á$A6 Á6BÂBc                 óª   — || _         | xj                  dz  c_        d| _        | j                  | j	                  |«      «       | j                  «        y)z;
        This is called when the child terminates.
        é   N)r   ÚlostProcessr
   r   Ú
_getReasonÚmaybeCallProcessEnded)r   r   s     r   ÚprocessEndedzBaseProcess.processEnded/   sF   € ð ˆŒØ×Ò˜AÑÕØˆŒØ×Ñ §¡°Ó 7Ô8Ø×"Ñ"Õ$r   c                 óæ   — | j                   �J| j                  | j                  «      }| j                   }d| _         	 |j                  t	        |«      «       yy# t
        $ r t        dd«       Y yw xY w)zD
        Call processEnded on protocol after final cleanup.
        Nz unexpected error in processEnded)r   r"   r   r$   r   r   r   )r   r   r   s      r   r#   z!BaseProcess.maybeCallProcessEnded9   sh   € ð �:‰:Ð!Ø—_‘_ T§[¡[Ó1ˆFØ—J‘JˆEØˆDŒJð>Ø×"Ñ"¤7¨6£?Õ3ð "øô !ò >Ü�DÐ<Ö=ð>ús   ¼A ÁA0Á/A0)Ú__name__Ú
__module__Ú__qualname__r
   r   ÚintÚ__annotations__r   r!   r   r   r   r$   r#   © r   r   r	   r	      s<   … Ø€Cˆ�#‰ÓØ €FˆH�S‰MÓ Ø€KØ€Eòò?ò%ó>r   r	   N)Ú__doc__Útypingr   Útwisted.python.deprecater   Útwisted.python.failurer   Útwisted.python.logr   Útwisted.python.reflectr   r   r	   r+   r   r   ú<module>r2      s/   ðñ
õ
 å 5Ý *Ý "Ý 'ð*ð ÷->ò ->r   