<!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¥!  ã                   @   sÒ   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 ddlmZ g d¢Ze	edƒZ
ejejfZddd	„ iZe jd
kr˜d dlZd dlZe ejejdœ¡ G dd„ deƒZeƒ ZejZejZejZejZdd„ ZdS )é    Né   )Úspawn)Úutil)Úensure_runningÚregisterÚ
unregisterÚpthread_sigmaskZnoopc                   C   s   d S ©N© r
   r
   r
   úE/opt/alt/python39/lib64/python3.9/multiprocessing/resource_tracker.pyÚ<lambda>!   ó    r   Úposix)Z	semaphoreZshared_memoryc                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚResourceTrackerc                 C   s   t  ¡ | _d | _d | _d S r	   )Ú	threadingZLockÚ_lockÚ_fdÚ_pid©Úselfr
   r
   r   Ú__init__0   s    
zResourceTracker.__init__c                 C   sj   | j P | jd u r"W d   ƒ d S t | j¡ d | _t | jd¡ d | _W d   ƒ n1 s\0    Y  d S )Nr   )r   r   ÚosÚcloseÚwaitpidr   r   r
   r
   r   Ú_stop5   s    
zResourceTracker._stopc                 C   s   |   ¡  | jS r	   )r   r   r   r
   r
   r   ÚgetfdB   s    zResourceTracker.getfdc                 C   s¦  | j ˆ | jd ur~|  ¡ r,W d   ƒ d S t | j¡ z| jd urRt | jd¡ W n tyf   Y n0 d | _d | _t 	d¡ g }z| 
tj ¡ ¡ W n ty¨   Y n0 d}t ¡ \}}zºz†| 
|¡ t ¡ }|gt ¡  }|d|| g7 }z:trt tjt¡ t |||¡}W tr@t tjt¡ ntr>t tjt¡ 0 W n   t |¡ ‚ Y n0 || _|| _W t |¡ nt |¡ 0 W d   ƒ n1 s˜0    Y  d S )Nr   zUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)r   r   Ú_check_aliver   r   r   r   ÚChildProcessErrorÚwarningsÚwarnÚappendÚsysÚstderrÚfilenoÚ	ExceptionÚpiper   Zget_executabler   Z_args_from_interpreter_flagsÚ_HAVE_SIGMASKÚsignalr   Ú	SIG_BLOCKÚ_IGNORED_SIGNALSZspawnv_passfdsÚSIG_UNBLOCK)r   Zfds_to_passÚcmdÚrÚwZexeÚargsÚpidr
   r
   r   r   F   sN    




ÿ
zResourceTracker.ensure_runningc                 C   s0   zt  | jd¡ W n ty&   Y dS 0 dS d S )Ns   PROBE:0:noop
FT)r   Úwriter   ÚOSErrorr   r
   r
   r   r   †   s
    zResourceTracker._check_alivec                 C   s   |   d||¡ d S )NÚREGISTER©Ú_send©r   ÚnameÚrtyper
   r
   r   r   ‘   s    zResourceTracker.registerc                 C   s   |   d||¡ d S )NÚ
UNREGISTERr3   r5   r
   r
   r   r   •   s    zResourceTracker.unregisterc                 C   sB   |   ¡  d |||¡ d¡}t|ƒdkr0tdƒ‚t | j|¡}d S )Nz{0}:{1}:{2}
Úasciii   zname too long)r   ÚformatÚencodeÚlenÚ
ValueErrorr   r0   r   )r   r+   r6   r7   ÚmsgÚnbytesr
   r
   r   r4   ™   s    zResourceTracker._sendN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r4   r
   r
   r
   r   r   .   s   @r   c           
      C   sÐ  t   t jt j¡ t   t jt j¡ tr2t  t jt¡ tj	tj
fD ]$}z| ¡  W q> ty`   Y q>0 q>dd„ t ¡ D ƒ}z¨t| dƒà}|D ]Ê}z| ¡  d¡ d¡\}}}t |d ¡}|d u rÒtd|› d|› ƒ‚|dkrê||  |¡ n2|d	kr||  |¡ n|d
krntd| ƒ‚W qŠ tyR   ztjt ¡ Ž  W n   Y n0 Y qŠ0 qŠW d   ƒ n1 sl0    Y  W | ¡ D ]ž\}}|r¾zt dt|ƒ|f ¡ W n ty¼   Y n0 |D ]X}zNzt| |ƒ W n8 ty }	 zt d||	f ¡ W Y d }	~	n
d }	~	0 0 W n0 qÂq€nª| ¡ D ]ž\}}|rhzt dt|ƒ|f ¡ W n tyf   Y n0 |D ]X}zNzt| |ƒ W n8 tyº }	 zt d||	f ¡ W Y d }	~	n
d }	~	0 0 W n0 qlq*0 d S )Nc                 S   s   i | ]}|t ƒ “qS r
   )Úset)Ú.0r7   r
   r
   r   Ú
<dictcomp>¹   r   zmain.<locals>.<dictcomp>Úrbr9   ú:zCannot register z. for automatic cleanup: unknown resource type r2   r8   ZPROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: %r: %s)r'   ÚSIGINTÚSIG_IGNÚSIGTERMr&   r   r*   r)   r!   ÚstdinÚstdoutr   r$   Ú_CLEANUP_FUNCSÚkeysÚopenÚstripÚdecodeÚsplitÚgetr=   ÚaddÚremoveÚRuntimeErrorÚ
excepthookÚexc_infoÚitemsr   r   r<   )
ÚfdÚfÚcacheÚliner+   r6   r7   Zcleanup_funcZrtype_cacheÚer
   r
   r   Úmain«   s€    ÿÿ

0
þ
*î
þ
*r_   )r   r'   r!   r   r   Ú r   r   Ú__all__Úhasattrr&   rH   rJ   r)   rM   r6   Z_multiprocessingZ_posixshmemÚupdateZ
sem_unlinkZ
shm_unlinkÚobjectr   Z_resource_trackerr   r   r   r   r_   r
   r
   r
   r   Ú<module>   s2   
ÿ
þw