MINI MINI MANI MO

Path : /usr/lib64/python3.6/multiprocessing/__pycache__/
File Upload :
Current File : //usr/lib64/python3.6/multiprocessing/__pycache__/semaphore_tracker.cpython-36.opt-2.pyc

3


 \@sddlZddlZddlZddlZddlZddlZddlmZddlmZdddgZ	Gdd	d	e
ZeZej
Z
ejZejZejZd
dZdS)N)spawn)utilensure_runningregister
unregisterc@s<eZdZddZddZddZddZd	d
ZddZd
S)SemaphoreTrackercCstj|_d|_d|_dS)N)	threadingZLock_lock_fd_pid)selfr9/usr/lib64/python3.6/multiprocessing/semaphore_tracker.py__init__s
zSemaphoreTracker.__init__cCs|j|jS)N)rr)r
rrrgetfd"szSemaphoreTracker.getfdc	Cs|j|jdk	rRtj|jtj\}}|s0dStj|jd|_d|_tjdg}y|j	t
jjWnt
k
r~YnXd}tj\}}zlyB|j	|tj}|gtj}|d||g7}tj|||}Wntj|YnX||_||_Wdtj|XWdQRXdS)NzWsemaphore_tracker: process died unexpectedly, relaunching.  Some semaphores might leak.z;from multiprocessing.semaphore_tracker import main;main(%d)z-c)r
roswaitpidWNOHANGcloserwarningswarnappendsysstderrfileno	ExceptionpiperZget_executablerZ_args_from_interpreter_flagsZspawnv_passfds)	r
pidZstatusZfds_to_passcmdrwZexeargsrrrr&s8





zSemaphoreTracker.ensure_runningcCs|jd|dS)NZREGISTER)_send)r
namerrrrQszSemaphoreTracker.registercCs|jd|dS)NZ
UNREGISTER)r#)r
r$rrrrUszSemaphoreTracker.unregistercCs@|jdj||jd}t|dkr.tdtj|j|}dS)Nz{0}:{1}
asciiiz
name too long)rformatencodelen
ValueErrorrwriter)r
rr$msgnbytesrrrr#YszSemaphoreTracker._sendN)	__name__
__module____qualname__rrrrrr#rrrrrs+rc-Cstjtjtjtjtjtjx6tjtjfD]&}y|jWq.tk
rRYq.Xq.Wt	}zt
|d}x|D]}yJ|jjd\}}|dkr|j
|n |dkr|j|ntd|Wqrtk
rytjtjWnYnXYqrXqrWWdQRXWd|r<ytjdt|Wntk
r:YnXxf|D]^}zT|jd}ytj|Wn6tk
r}ztjd||fWYdd}~XnXWdXqBWXdS)	Nrb:sREGISTERs
UNREGISTERzunrecognized command %rzRsemaphore_tracker: There appear to be %d leaked semaphores to clean up at shutdownr%zsemaphore_tracker: %r: %s)signalSIGINTSIG_IGNSIGTERMrstdinstdoutrrsetopenstripsplitaddremoveRuntimeError
excepthookexc_inforrr(decode_multiprocessingZ
sem_unlink)fdfcachelinerr$errrmainksJ



(rH)rr2rr	rrBrr__all__objectrZ_semaphore_trackerrrrrrHrrrr<module>s
I

OHA YOOOO