File: //lib64/python3.8/multiprocessing/__pycache__/resource_tracker.cpython-38.opt-2.pyc
U
e5d¥! ã @ sÔ d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ dddgZe edƒZ
ejejfZ
d d
d„ iZe jdkršd dlZd dlZe ejejd
œ¡ G dd„ deƒZeƒ ZejZejZejZejZdd„ ZdS )é Né )Úspawn)ÚutilÚensure_runningÚregisterÚ
unregisterÚpthread_sigmaskZnoopc C s d S ©N© r
r
r
ú8/usr/lib64/python3.8/multiprocessing/resource_tracker.pyÚ<lambda>! ó r Úposix)Z semaphoreZ
shared_memoryc @ sL e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd d
„ Zdd„ Zd
d„ Z dd„ Z
dS )ÚResourceTrackerc C s t ¡ | _d | _d | _d S r )Ú threadingZLockÚ_lockÚ_fdÚ_pid©Úselfr
r
r Ú__init__0 s
zResourceTracker.__init__c C sT | j D | jd kr W 5 Q R £ d S t | j¡ d | _t | jd¡ d | _W 5 Q R X d S )Nr )r r ÚosÚcloseÚwaitpidr r r
r
r Ú_stop5 s
zResourceTracker._stopc C s | ¡ | jS r )r r r r
r
r ÚgetfdB s zResourceTracker.getfdc C st | j b | jd k r~| ¡ r*W 5 Q R £ d S t | j¡ z| jd k rPt | jd¡ W n tk
rf Y nX d | _d | _t d¡ g }z|
tj
¡ ¡ W n tk
rª Y nX d}t ¡ \}}zœzr|
|¡ t ¡ }|gt ¡ }|d|| g7 }z&trt tjt¡ t |||¡}W 5 tr,t tjt¡ X W n t |¡ ‚ Y nX || _|| _W 5 t |¡ X W 5 Q R X 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 Zget_executabler Z_args_from_interpreter_flagsÚ
_HAVE_SIGMASKÚsignalr ÚSIG_UNBLOCKÚ_IGNORED_SIGNALSÚ SIG_BLOCKZspawnv_passfds)r Zfds_to_passÚcmdÚrÚwZexeÚargsÚpidr
r
r r F sJ
zResourceTracker.ensure_runningc C s2 zt | jd¡ W n tk
r( Y dS X dS d S )Ns
PROBE:0:noop
FT)r Úwriter ÚOSErrorr r
r
r r † s
zResourceTracker._check_alivec C s | d||¡ d S )NÚREGISTER©Ú_send©r ÚnameÚrtyper
r
r r ‘ s zResourceTracker.registerc C s | d||¡ d S )NÚ
UNREGISTERr3 r5 r
r
r r • s zResourceTracker.unregisterc C sB | ¡ d |||¡ d¡}t|ƒdkr0tdƒ‚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 zResourceTracker._sendN)Ú__name__Ú
__module__Ú__qualname__r r r r r r r r4 r
r
r
r r . s
@r c
C s t t jt j¡ t t jt j¡ tr2t t jt¡ tj tj
fD ]&}z| ¡ W q> tk
rb Y q>X q>dd„ t
¡ D ƒ}zìt| dƒØ}|D ]Ì}z| ¡ d¡ d¡\}}}t
|d ¡} | d krÒtd|› d |› ƒ‚|d
krê|| |¡ n2|dkr|| |¡ n|dkrntd
| ƒ‚W qŠ tk
rT ztjt ¡ Ž W n Y nX Y qŠX qŠW 5 Q R X W 5 | ¡ D ]ž\}}|r®zt dt|ƒ|f ¡ W n tk
r¬ Y nX |D ]V}zLzt
| |ƒ W n6 tk
rþ } zt d||f ¡ W 5 d }~X Y nX W 5 X q²qnX d S )Nc S s i | ]}|t ƒ “qS r
)Úset)Ú.0r7 r
r
r Ú
<dictcomp>¹ s zmain.<locals>.<dictcomp>zQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: %r: %sÚrbr9 ú:zCannot register z. for automatic cleanup: unknown resource type r2 r8 ZPROBEzunrecognized command %r)r' ÚSIGINTÚSIG_IGNÚSIGTERMr&