<!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>
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röde!vröde!› ee" < qöeƒ 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|ƒ| _|p€t| ƒ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rÊt ||¡}| 
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 rÞd}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<   


  !
