ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.8/multiprocessing/__pycache__/resource_sharer.cpython-38.opt-1.pyc
U

e5dèã@s²ddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	dgZ
ejdkrxe
dg7Z
Gd	d„deƒZ
ne
d
g7Z
Gdd
„d
eƒZGdd
„d
eƒZeƒZejZdS)éNé)Úprocess)Ú	reduction)ÚutilÚstopZwin32Ú	DupSocketc@s eZdZdZdd„Zdd„ZdS)rzPicklable wrapper for a socket.cs(| ¡‰‡fdd„}t |ˆj¡|_dS)Ncsˆ |¡}| |¡dS©N)ÚshareZ
send_bytes)ÚconnÚpidr	©Znew_sock©ú7/usr/lib64/python3.8/multiprocessing/resource_sharer.pyÚsends
z DupSocket.__init__.<locals>.send)ÚdupÚ_resource_sharerÚregisterÚcloseÚ_id)ÚselfZsockrr
rrÚ__init__szDupSocket.__init__c
Cs6t |j¡ }| ¡}t |¡W5QR£SQRXdS)z1Get the socket.  This should only be called once.N)rÚget_connectionrZ
recv_bytesÚsocketZ	fromshare)rr
r	r
r
rÚdetach$szDupSocket.detachN©Ú__name__Ú
__module__Ú__qualname__Ú__doc__rrr
r
r
rrsÚDupFdc@s eZdZdZdd„Zdd„ZdS)rz-Wrapper for fd which can be used at any time.cs4t |¡‰‡fdd„}‡fdd„}t ||¡|_dS)Ncst |ˆ|¡dSr)rZsend_handle)r
r©Znew_fdr
rr1szDupFd.__init__.<locals>.sendcst ˆ¡dSr)Úosrr
r r
rr3szDupFd.__init__.<locals>.close)r!rrrr)rÚfdrrr
r rr/s
zDupFd.__init__c
Cs.t |j¡}t |¡W5QR£SQRXdS)z-Get the fd.  This should only be called once.N)rrrrZrecv_handle)rr
r
r
rr7szDupFd.detachNrr
r
r
rr-sc@sNeZdZdZdd„Zdd„Zedd„ƒZdd	d
„Zdd„Z	d
d„Z
dd„ZdS)Ú_ResourceSharerz.Manager for resources using background thread.cCs@d|_i|_g|_t ¡|_d|_d|_d|_t	 
|tj¡dS)Nr)
Ú_keyÚ_cacheÚ
_old_locksÚ	threadingÚLockÚ_lockÚ	_listenerÚ_addressÚ_threadrZregister_after_forkr#Ú
_afterfork)rr
r
rr?s
z_ResourceSharer.__init__c
CsZ|jJ|jdkr| ¡|jd7_||f|j|j<|j|jfW5QR£SQRXdS)z+Register resource, returning an identifier.Nr)r)r+Ú_startr$r%)rrrr
r
rrIs
z_ResourceSharer.registercCs<ddlm}|\}}||t ¡jd}| |t ¡f¡|S)z<Return connection from which to receive identified resource.r©ÚClient©Úauthkey)Ú
connectionr0rÚcurrent_processr2rr!Úgetpid)Zidentr0ÚaddressÚkeyÚcr
r
rrRs
z_ResourceSharer.get_connectionNc	Cs¶ddlm}|jš|jdk	r¨||jt ¡jd}| d¡| ¡|j	 
|¡|j	 ¡rdt 
d¡|j ¡d|_	d|_d|_|j ¡D]\}\}}|ƒqŠ|j ¡W5QRXdS)z:Stop the background thread and clear registered resources.rr/Nr1z._ResourceSharer thread did not stop when asked)r3r0r)r+rr4r2rrr,ÚjoinZis_aliverZsub_warningr*r%ÚitemsÚclear)rZtimeoutr0r8r7rrr
r
rr[s$
ÿ



z_ResourceSharer.stopcCsj|j ¡D]\}\}}|ƒq
|j ¡|j |j¡t ¡|_|jdk	rT|j 	¡d|_d|_
d|_dSr)r%r:r;r&Úappendr)r'r(r*rr+r,)rr7rrr
r
rr-ps



z_ResourceSharer._afterforkcCsXddlm}t d¡|t ¡jd|_|jj|_	t
j|jd}d|_
| ¡||_dS)Nr)ÚListenerz0starting listener and thread for sending handlesr1)ÚtargetT)r3r=rÚdebugrr4r2r*r6r+r'ZThreadÚ_serveZdaemonÚstartr,)rr=Útr
r
rr.~s

z_ResourceSharer._startc	Cs®ttdƒrt tjt ¡¡zh|j ¡T}| ¡}|dkrHW5QR£Wqª|\}}|j 	|¡\}}z|||ƒW5|ƒXW5QRXWqt
 ¡s¢tj
t ¡ŽYqXqdS)NÚpthread_sigmask)ÚhasattrÚsignalrCÚ	SIG_BLOCKÚ
valid_signalsr*ZacceptZrecvr%ÚpoprZ
is_exitingÚsysÚ
excepthookÚexc_info)rr
Úmsgr7Zdestination_pidrrr
r
rr@‰s
z_ResourceSharer._serve)N)rrrrrrÚstaticmethodrrr-r.r@r
r
r
rr#=s
	

r#)r!rErrIr'ÚrÚcontextrrÚ__all__ÚplatformÚobjectrrr#rrr
r
r
rÚ<module>s 


`