£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
a
    XC?h.                     @   s2  g d Z ddlZddlZddlZddlZddlZddlmZ zej	e
 ZW n eyf   dZY n0 dd Zdd Zdd	 Zd
d ZG dd deZG dd deZG dd deZG dd deZdae aedae a[i Zeej  D ]0\Z!Z"e!dd dkrde!vrde! ee" < qe Z#dS ))BaseProcesscurrent_processactive_childrenparent_process    N)WeakSetc                   C   s   t S N)_current_process r	   r	   </opt/alt/python39/lib64/python3.9/multiprocessing/process.pyr   %   s    r   c                   C   s   t   ttS r   )_cleanuplist	_childrenr	   r	   r	   r
   r   +   s    r   c                   C   s   t S r   )_parent_processr	   r	   r	   r
   r   3   s    r   c                  C   s*   t tD ]} | j d urt|  qd S r   )r   r   _popenpolldiscard)pr	   r	   r
   r   =   s    r   c                   @   s   e Zd Zdd Zddddi fddddZdd	 Zd
d Zdd Zdd Zdd Z	d+ddZ
dd Zdd Zedd Zejdd Zedd Zejdd Zedd Zejd d Zed!d" Zed#d$ ZeZed%d& Zd'd( Zd,d)d*ZdS )-r   c                 C   s   t d S r   )NotImplementedErrorselfr	   r	   r
   _PopenM   s    zBaseProcess._PopenNr	   )daemonc                C   s   t t}tj|f | _tj | _t | _tj	| _
d | _d| _|| _t|| _t|| _|pt| jd ddd | jD  | _|d ur|| _t|  d S )NF-:c                 s   s   | ]}t |V  qd S r   )str).0ir	   r	   r
   	<genexpr>^       z'BaseProcess.__init__.<locals>.<genexpr>)next_process_counterr   	_identity_configcopyosgetpid_parent_pidname_parent_namer   _closed_targettuple_argsdict_kwargstype__name__join_namer   	_danglingadd)r   grouptargetr'   argskwargsr   countr	   r	   r
   __init__P   s     


zBaseProcess.__init__c                 C   s   | j rtdd S )Nzprocess object is closed)r)   
ValueErrorr   r	   r	   r
   _check_closedc   s    zBaseProcess._check_closedc                 C   s   | j r| j | ji | j d S r   )r*   r,   r.   r   r	   r	   r
   rung   s    zBaseProcess.runc                 C   s>   |    t  | | | _| jj| _| `| `| `t	
|  d S r   )r<   r   r   r   sentinel	_sentinelr*   r,   r.   r   r4   r   r	   r	   r
   startn   s    
zBaseProcess.startc                 C   s   |    | j  d S r   )r<   r   	terminater   r	   r	   r
   rA      s    zBaseProcess.terminatec                 C   s   |    | j  d S r   )r<   r   killr   r	   r	   r
   rB      s    zBaseProcess.killc                 C   s*   |    | j|}|d ur&t|  d S r   )r<   r   waitr   r   )r   timeoutresr	   r	   r
   r1      s    zBaseProcess.joinc                 C   sJ   |    | tu rdS | jd u r"dS | j }|d u r8dS t|  dS d S )NTF)r<   r   r   r   r   r   )r   
returncoder	   r	   r
   is_alive   s    


zBaseProcess.is_alivec                 C   sH   | j d ur>| j  d u r td| j   d | _ | `t|  d| _d S )Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)r   r   r;   closer?   r   r   r)   r   r	   r	   r
   rH      s    


zBaseProcess.closec                 C   s   | j S r   r2   r   r	   r	   r
   r'      s    zBaseProcess.namec                 C   s
   || _ d S r   rI   )r   r'   r	   r	   r
   r'      s    c                 C   s   | j ddS )Nr   F)r"   getr   r	   r	   r
   r      s    zBaseProcess.daemonc                 C   s   || j d< d S )Nr   r"   )r   Zdaemonicr	   r	   r
   r      s    c                 C   s
   | j d S NauthkeyrK   r   r	   r	   r
   rM      s    zBaseProcess.authkeyc                 C   s   t || jd< d S rL   )AuthenticationStringr"   )r   rM   r	   r	   r
   rM      s    c                 C   s"   |    | jd u r| jS | j S r   )r<   r   r   r   r	   r	   r
   exitcode   s    
zBaseProcess.exitcodec                 C   s*   |    | tu rt S | jo$| jjS d S r   )r<   r   r$   r%   r   pidr   r	   r	   r
   ident   s    zBaseProcess.identc                 C   s2   |    z| jW S  ty,   tdd Y n0 d S )Nzprocess not started)r<   r?   AttributeErrorr;   r   r	   r	   r
   r>      s
    zBaseProcess.sentinelc                 C   s   d }| t u rd}nL| jrd}n@| jt kr2d}n,| jd u rBd}n| j }|d urZd}nd}t| jd| j	 g}| jd ur|
d| jj  |
d| j  |
| |d urt||}|
d	|  | jr|
d
 dd| S )NZstartedclosedunknowninitialZstoppedzname=%rzpid=%sz	parent=%szexitcode=%sr   z<%s> )r   r)   r&   r$   r%   r   r   r/   r0   r2   appendrP   _exitcode_to_namerJ   r   r1   )r   rO   Zstatusinfor	   r	   r
   __repr__  s0    




zBaseProcess.__repr__c              
   C   s  ddl m}m} z`z| jd ur,|| j tdat a	|
  t}| at| j| j|atjrnt   z|j  |  W ~n~0 |d z|   d}W |  n
|  0 W n ty  } zJ|jd u rd}n.t|jtr|j}ntj t!|jd  d}W Y d }~n:d }~0    d}dd l"}tj d| j#  |$  Y n0 W t%  |d|  |&  n t%  |d|  |&  0 |S )N   )utilcontextz child process calling self.run()r   
zProcess %s:
z process exiting with exitcode %d)' r\   r]   Z_start_methodZ_force_start_method	itertoolsr9   r    setr   Z_close_stdinr   _ParentProcessr(   r&   r   	threadingZ_HAVE_THREAD_NATIVE_IDZmain_threadZ_set_native_idZ_finalizer_registryclearZ_run_after_forkersrY   r=   Z_exit_function
SystemExitcode
isinstanceintsysstderrwriter   	tracebackr'   	print_excZ	_shutdownZ_flush_std_streams)r   Zparent_sentinelr\   r]   Zold_processrO   erl   r	   r	   r
   
_bootstrap"  sT    








zBaseProcess._bootstrap)N)N)r0   
__module____qualname__r   r:   r<   r=   r@   rA   rB   r1   rG   rH   propertyr'   setterr   rM   rO   rQ   rP   r>   rZ   ro   r	   r	   r	   r
   r   G   sB   







	


r   c                   @   s   e Zd Zdd ZdS )rN   c                 C   s,   ddl m} | d u rtdtt| ffS )Nr[   )get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r]   rt   	TypeErrorrN   bytes)r   rt   r	   r	   r
   
__reduce__X  s    
zAuthenticationString.__reduce__N)r0   rp   rq   rw   r	   r	   r	   r
   rN   W  s   rN   c                   @   s6   e Zd Zdd Zdd Zedd Zd
dd	ZeZdS )rb   c                 C   s4   d| _ || _|| _d | _d | _d| _|| _i | _d S )Nr	   F)r!   r2   _pidr&   r   r)   r?   r"   )r   r'   rP   r>   r	   r	   r
   r:   h  s    z_ParentProcess.__init__c                 C   s   ddl m} || jgdd S Nr   )rC   )rD   Zmultiprocessing.connectionrC   r?   )r   rC   r	   r	   r
   rG   r  s    z_ParentProcess.is_alivec                 C   s   | j S r   )rx   r   r	   r	   r
   rQ   v  s    z_ParentProcess.identNc                 C   s    ddl m} || jg|d d S ry   rz   )r   rD   rC   r	   r	   r
   r1   z  s    z_ParentProcess.join)N)	r0   rp   rq   r:   rG   rr   rQ   r1   rP   r	   r	   r	   r
   rb   f  s   


rb   c                   @   s   e Zd Zdd Zdd ZdS )_MainProcessc                 C   s8   d| _ d| _d | _d | _d| _ttddd| _d S )Nr	   ZMainProcessF    z/mp)rM   Z	semprefix)	r!   r2   r&   r   r)   rN   r$   urandomr"   r   r	   r	   r
   r:     s    z_MainProcess.__init__c                 C   s   d S r   r	   r   r	   r	   r
   rH     s    z_MainProcess.closeN)r0   rp   rq   r:   rH   r	   r	   r	   r
   r{     s   r{   r[      ZSIG_r   )$__all__r$   ri   signalr`   rc   Z_weakrefsetr   pathabspathgetcwdZORIGINAL_DIROSErrorr   r   r   r   objectr   rv   rN   rb   r{   r   r   r9   r    ra   r   rX   r   __dict__itemsr'   Zsignumr3   r	   r	   r	   r
   <module>
   s<   


  !
