gddlZddlZddlZddlZddlZddlmZddlmZddlm Z dgZ ejdk(re dgz Z Gd de Z ne d gz Z Gd d e ZGd d e ZeZej"Zy)N)process) reduction)utilstopwin32 DupSocketceZdZ dZdZy)r cz|jfd}tj|j|_y)NcJj|}|j|yN)share send_bytes)connpidrnew_socks F/opt/alt/python312/lib64/python3.12/multiprocessing/resource_sharer.pysendz DupSocket.__init__..sends s+&)dup_resource_sharerregisterclose_id)selfsockrrs @r__init__zDupSocket.__init__s-xxzH '(00x~~FDHrc tj|j5}|j}t j |cdddS#1swYyxYwr )rget_connectionr recv_bytessocket fromshare)rrrs rdetachzDupSocket.detach$s? C!00:d)''.;::s %AAN__name__ __module__ __qualname__rr#rrr r s- G /rDupFdceZdZ dZdZy)r)cztj|fd}fd}tj|||_y)Nc4tj||yr )r send_handle)rrnew_fds rrzDupFd.__init__..send1s%%dFC8rc0tjyr )osr)r.srrzDupFd.__init__..close3s r)r0rrrr)rfdrrr.s @rrzDupFd.__init__/s.VVBZF 9 !'00u=DHrc tj|j5}tj|cdddS#1swYyxYwr )rrrr recv_handle)rrs rr#z DupFd.detach7s3 ?!00:d ,,T2;::s AA Nr$r(rrr)r)-s; > 3rcDeZdZ dZdZedZd dZdZdZ dZ y) _ResourceSharercd|_i|_tj|_d|_d|_d|_tj|tjy)Nr) _key_cache threadingLock_lock _listener_address_threadrregister_after_forkr5 _afterfork)rs rrz_ResourceSharer.__init__?sI  ^^%      'A'ABrc |j5|j|j|xjdz c_||f|j|j<|j|jfcdddS#1swYyxYw)Nr)r;r=_startr7r8)rrrs rrz_ResourceSharer.registerHs\9 ZZ}}$ IINI&*E]DKK "MM499- ZZs A$A<<Bc ddlm}|\}}||tjj}|j |t jf|S)NrClientauthkey) connectionrErcurrent_processrGrr0getpid)identrEaddresskeycs rrz_ResourceSharer.get_connectionQsHJ&  7G$;$;$=$E$E F RYY[!"rNc ddlm}|j5|j||jt j j }|jd|j|jj||jjrtjd|jjd|_ d|_d|_|jj!D]\}\}}||jj#dddy#1swYyxYw)NrrDrFz._ResourceSharer thread did not stop when asked)rHrEr;r=rrIrGrrr>joinis_aliver sub_warningr<r8itemsclear)rtimeoutrErNrMrrs rrz_ResourceSharer.stopZsH& ZZ}}(4==#*#:#:#<#D#DFt   !!'*<<((*$$&;<$$&# $ !%*.++*;*;*=&C$G+> !!#!ZZs DD;;Ec:|jjD]\}\}}||jj|jj |j |j j d|_d|_d|_yr ) r8rSrTr;_at_fork_reinitr<rr=r>)rrMrrs rr@z_ResourceSharer._afterforkosv"&++"3"3"5 C$ G#6  ""$ >> % NN "  rcBddlm}tjd|t j j d|_|jj|_ tj|j}d|_ |j||_y)Nr)Listenerz0starting listener and thread for sending handles)rGbacklog)targetT)rHrYrdebugrrIrGr<rLr=r9Thread_servedaemonstartr>)rrYts rrBz_ResourceSharer._startzsl( EF!'*A*A*C*K*KUXY..   DKK 0   rc*ttdr6tjtjtj |j j 5}|j}| dddy|\}}|jj|\}} |||| dddv#|wxYw#1swYxYw#tjs$tjtjYUxYw)Npthread_sigmask)hasattrsignalrd SIG_BLOCK valid_signalsr<acceptrecvr8popr is_exitingsys excepthookexc_info)rrmsgrMdestination_pidrrs rr_z_ResourceSharer._serves 6, -  " "6#3#3V5I5I5K L 4^^**,))+C{-,,/(C"&++//#"6KD% T?3--, 4(NNCLLN3sH C#C 7C#C $ B>-C 5C> CC  CC:Dr ) r%r&r'rr staticmethodrrr@rBr_r(rrr5r5=s88C.$*  4rr5)r0rfr!rmr9rcontextrr__all__platformobjectr r)r5rrr(rrrxs  (<<7 }G /F /  yG 3 3 Y4fY4x#$r