fddlZddlZddlZddlZddlZddlmZddlmZddlm Z dgZ ej dkre dgz Z Gd de Z ne d gz Z Gd d e ZGd d e ZeZejZdS)N)process) reduction)utilstopwin32 DupSocketceZdZ dZdZdS)r c|fd}t|j|_dS)Nc\|}||dSN)share send_bytes)connpidrnew_socks F/opt/alt/python311/lib64/python3.11/multiprocessing/resource_sharer.pysendz DupSocket.__init__..sends, s++&&&&&)dup_resource_sharerregisterclose_id)selfsockrrs @r__init__zDupSocket.__init__sHxxzzH ' ' ' ' '(00x~FFDHHHrc t|j5}|}t j|cdddS#1swxYwYdSr )rget_connectionr recv_bytessocket fromshare)rrrs rdetachzDupSocket.detach$s C!00:: /d))'.. / / / / / / / / / / / / / / / / / /s(AAAN__name__ __module__ __qualname__rr#rrr r s8- G G G / / / / /rDupFdceZdZ dZdZdS)r)ctj|fd}fd}t|||_dS)Nc4tj||dSr )r send_handle)rrnew_fds rrzDupFd.__init__..send1s%dFC88888rc0tjdSr )osr)r.srrzDupFd.__init__..close3s     r)r0rrrr)rfdrrr.s @rrzDupFd.__init__/s]VBZZF 9 9 9 9 9 ! ! ! ! !'00u==DHHHrc t|j5}tj|cdddS#1swxYwYdSr )rrrr recv_handle)rrs rr#z DupFd.detach7s ?!00:: 3d ,T22 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3sAA ANr$r(rrr)r)-s5; > > > 3 3 3 3 3rcLeZdZ dZdZedZd dZdZdZ dZ dS) _ResourceSharercd|_i|_tj|_d|_d|_d|_tj |tj dS)Nr) _key_cache threadingLock_lock _listener_address_threadrregister_after_forkr5 _afterfork)rs rrz_ResourceSharer.__init__?sP  ^%%     'ABBBBBrc |j5|j||xjdz c_||f|j|j<|j|jfcdddS#1swxYwYdS)Nr)r;r=_startr7r8)rrrs rrz_ResourceSharer.registerHs9 Z . .}$ IINII&*E]DK "M49-  . . . . . . . . . . . . . . . . . .sA A  A$'A$c ddlm}|\}}||tjj}||t jf|S)NrClientauthkey) connectionrErcurrent_processrGrr0getpid)identrEaddresskeycs rrz_ResourceSharer.get_connectionQsbJ&&&&&&  F7G$;$=$=$E F F F RY[[!"""rNcz ddlm}|j5|j ||jt jj}|d||j ||j rtj d|jd|_ d|_d|_|jD]\}\}}||jddddS#1swxYwYdS)NrrDrFz._ResourceSharer thread did not stop when asked)rHrEr;r=rrIrGrrr>joinis_aliver sub_warningr<r8itemsclear)rtimeoutrErNrMrrs rrz_ResourceSharer.stopZsH&&&&&& Z $ $}(F4=#*#:#<#<#DFFFt   !!'***<((**<$&;<<<$$&&&# $ !%*.+*;*;*=*=&C$EGGGG !!###! $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $sDD00D47D4c,|jD]\}\}}||j|j|j|jd|_d|_d|_dSr ) r8rSrTr;_at_fork_reinitr<rr=r>)rrMrrs rr@z_ResourceSharer._afterforkos"&+"3"3"5"5   C$ EGGGG  ""$$$ > % N " " "  rc$ddlm}tjd|t jjd|_|jj|_ tj |j }d|_ |||_dS)Nr)Listenerz0starting listener and thread for sending handles)rGbacklog)targetT)rHrYrdebugrrIrGr<rLr=r9Thread_servedaemonstartr>)rrYts rrBz_ResourceSharer._startzs(((((( EFFF!'*A*C*C*KUXYYY.  DK 0 0 0   rcDttdr0tjtjtj |j5}|}| ddddS|\}}|j |\}} ||||n#|wxYw dddn #1swxYwYn9#tj stj tjYnxYw)Npthread_sigmask)hasattrsignalrd SIG_BLOCK valid_signalsr<acceptrecvr8popr is_exitingsys excepthookexc_info)rrmsgrMdestination_pidrrs rr_z_ResourceSharer._serveso 6, - - M  "6#3V5I5K5K L L L 4 4^**,,  ))++C{         ,/(C"&+//#"6"6KD% T?333                 4((4NCLNN33 4sTC(!C9 C("C) C5 C C  C C(C  C(#C $C((4Dr ) r%r&r'rr staticmethodrrr@rBr_r(rrr5r5=s8CCC...\$$$$*      44444rr5)r0rfr!rmr9rcontextrr__all__platformobjectr r)r5rrr(rrrxsE  (<7 }G / / / / /F / / / /  yG 3 3 3 3 3 3 3 3 Y4Y4Y4Y4Y4fY4Y4Y4x#?$$r