<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    if.                     @   s8  d dddg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k
rl   dZY nX 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!k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/python38/lib64/python3.8/multiprocessing/process.pyr   %   s    c                   C   s   t   ttS r   )_cleanuplist	_childrenr	   r	   r	   r
   r   +   s    c                   C   s   t S r   )_parent_processr	   r	   r	   r
   r   3   s    c                  C   s*   t tD ]} | j d k	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 k	r|| _t|  d S )NF-:c                 s   s   | ]}t |V  qd S r   )str).0ir	   r	   r
   	<genexpr>^   s     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| 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   r3   r   r	   r	   r
   startn   s    
zBaseProcess.startc                 C   s   |    | j  d S r   )r;   r   	terminater   r	   r	   r
   r@      s    zBaseProcess.terminatec                 C   s   |    | j  d S r   )r;   r   killr   r	   r	   r
   rA      s    zBaseProcess.killc                 C   s*   |    | j|}|d k	r&t|  d S r   )r;   r   waitr   r   )r   timeoutresr	   r	   r
   r0      s    zBaseProcess.joinc                 C   sJ   |    | tkrdS | jd kr"dS | j }|d k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 k	r>| j  d k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
   rG      s    


zBaseProcess.closec                 C   s   | j S r   r1   r   r	   r	   r
   r&      s    zBaseProcess.namec                 C   s
   || _ d S r   rH   )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authkeyrJ   r   r	   r	   r
   rL      s    zBaseProcess.authkeyc                 C   s   t || jd< d S rK   )AuthenticationStringr!   )r   rL   r	   r	   r
   rL      s    c                 C   s"   |    | jd kr| jS | j S r   )r;   r   r   r   r	   r	   r
   exitcode   s    
zBaseProcess.exitcodec                 C   s*   |    | tk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   s4   |    z| jW S  tk
r.   tdd Y nX d S )Nzprocess not started)r;   r>   AttributeErrorr:   r   r	   r	   r
   r=      s
    zBaseProcess.sentinelc                 C   s   d }| t krd}nL| jrd}n@| jt kr2d}n,| jd krBd}n| j }|d k	rZd}nd}t| jd| j	 g}| jd k	r|
d| jj  |
d| j  |
| |d k	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.   r/   r1   appendrO   _exitcode_to_namerI   r   r0   )r   rN   Zstatusinfor	   r	   r
   __repr__  s0    




zBaseProcess.__repr__c              
   C   sv  ddl m}m} z>z| jd k	r,|| j t	
dat a|  t}| at| j| j|atjrnt   z|j  |  W 5 ~X |d z|   d}W 5 |  X W n tk
r } zJ|jsd}n:t|jd tr|jd }nt j!"t#|jd d  d}W 5 d }~X Y n2   d}dd l$}t j!"d| j%  |&  Y nX W 5 t  |d|  |  X |S )N   )utilcontextz process exiting with exitcode %dz child process calling self.run()r   
zProcess %s:
)' r[   r\   	threadingZ	_shutdownrX   Z_flush_std_streamsZ_start_methodZ_force_start_method	itertoolsr8   r   setr   Z_close_stdinr   _ParentProcessr'   r%   r   Z_HAVE_THREAD_NATIVE_IDZmain_threadZ_set_native_idZ_finalizer_registryclearZ_run_after_forkersZ_exit_functionr<   
SystemExitr6   
isinstanceintsysstderrwriter   	tracebackr&   	print_exc)r   Zparent_sentinelr[   r\   rN   Zold_processerj   r	   r	   r
   
_bootstrap"  sR    

  


zBaseProcess._bootstrap)N)N)r/   
__module____qualname__r   r9   r;   r<   r?   r@   rA   r0   rF   rG   propertyr&   setterr   rL   rN   rP   rO   r=   rY   rm   r	   r	   r	   r
   r   G   sB   







	


c                   @   s   e Zd Zdd ZdS )rM   c                 C   s,   ddl m} | d krtdtt| ffS )NrZ   )get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r\   rr   	TypeErrorrM   bytes)r   rr   r	   r	   r
   
__reduce__X  s    
zAuthenticationString.__reduce__N)r/   rn   ro   ru   r	   r	   r	   r
   rM   W  s   rM   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    r1   _pidr%   r   r(   r>   r!   )r   r&   rO   r=   r	   r	   r
   r9   h  s    z_ParentProcess.__init__c                 C   s   ddl m} || jgdd S Nr   )rB   )rC   Zmultiprocessing.connectionrB   r>   )r   rB   r	   r	   r
   rF   r  s    z_ParentProcess.is_alivec                 C   s   | j S r   )rv   r   r	   r	   r
   rP   v  s    z_ParentProcess.identNc                 C   s    ddl m} || jg|d d S rw   rx   )r   rC   rB   r	   r	   r
   r0   z  s    z_ParentProcess.join)N)	r/   rn   ro   r9   rF   rp   rP   r0   rO   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)rL   Z	semprefix)	r    r1   r%   r   r(   rM   r#   urandomr!   r   r	   r	   r
   r9     s    z_MainProcess.__init__c                 C   s   d S r   r	   r   r	   r	   r
   rG     s    z_MainProcess.closeN)r/   rn   ro   r9   rG   r	   r	   r	   r
   ry     s   ry   rZ      ZSIG_r   )$__all__r#   rg   signalr`   r_   Z_weakrefsetr   pathabspathgetcwdZORIGINAL_DIROSErrorr   r   r   r   objectr   rt   rM   rb   ry   r   r   r8   r   ra   r   rW   r   __dict__itemsr&   Zsignumr2   r	   r	   r	   r
   <module>
   s@   


  !
