o ?Og9/ã@s2gd¢ZddlZddlZddlZddlZddlZddlmZz ej  e  ¡¡Z Wn e y3dZ Ynwdd„Z dd„Zdd „Zd d „ZGd d „d eƒZGdd„deƒZGdd„deƒZGdd„deƒZdaeƒae d¡aeƒa[iZeej  ¡ƒD]\Z!Z"e!dd…dkr“de!vr“de!›ee" <q{eƒZ#dS))Ú BaseProcessÚcurrent_processÚactive_childrenÚparent_processéN)ÚWeakSetcCó tS©N)Ú_current_process©r r ú>/opt/alt/python310/lib64/python3.10/multiprocessing/process.pyr%órcCs tƒttƒSr)Ú_cleanupÚlistÚ _childrenr r r r r+srcCrr)Ú_parent_processr r r r r3r rcCs*ttƒD]}|j ¡durt |¡qdSr)rrÚ_popenÚpollÚdiscard)Úpr r r r =s  €þr c@seZdZ dd„Zddddifddœdd„Zdd „Zd d „Zd d „Zdd„Zdd„Z d-dd„Z dd„Z dd„Z e dd„ƒZejdd„ƒZe dd„ƒZejdd„ƒZe dd„ƒZejd d„ƒZe d!d"„ƒZe d#d$„ƒZeZe d%d&„ƒZd'd(„Zd-d)d*„Zed+d,„ƒZdS).rcCst‚r)ÚNotImplementedError©Úselfr r r Ú_PopenMózBaseProcess._PopenNr )ÚdaemoncCs ttƒ}tj|f|_tj ¡|_t ¡|_tj |_ d|_ d|_ ||_ t|ƒ|_t|ƒ|_|p@t|ƒjdd dd„|jDƒ¡|_|durI||_t |¡dS)NFú-ú:css|]}t|ƒVqdSr)Ústr)Ú.0Úir r r Ú ^s€z'BaseProcess.__init__..)ÚnextÚ_process_counterr Ú _identityÚ_configÚcopyÚosÚgetpidÚ _parent_pidÚnameÚ _parent_namerÚ_closedÚ_targetÚtupleÚ_argsÚdictÚ_kwargsÚtypeÚ__name__ÚjoinÚ_namerÚ _danglingÚadd)rÚgroupÚtargetr)ÚargsÚkwargsrÚcountr r r Ú__init__Ps     ÿzBaseProcess.__init__cCs|jrtdƒ‚dS)Nzprocess object is closed)r+Ú ValueErrorrr r r Ú _check_closedcsÿzBaseProcess._check_closedcCs$ |jr|j|ji|j¤ŽdSdSr)r,r.r0rr r r ÚrungsÿzBaseProcess.runcCs@ | ¡tƒ| |¡|_|jj|_|`|`|`t   |¡dSr) r>r rrÚsentinelÚ _sentinelr,r.r0rr6rr r r Ústartns   zBaseProcess.startcCó | ¡|j ¡dSr)r>rÚ terminaterr r r rD€ózBaseProcess.terminatecCrCr)r>rÚkillrr r r rF‡rEzBaseProcess.killcCs0 | ¡|j |¡}|durt |¡dSdSr)r>rÚwaitrr)rÚtimeoutÚresr r r r3Žs  ÿzBaseProcess.joincCsH | ¡|tur dS|jdurdS|j ¡}|durdSt |¡dS)NTF)r>r rrrr)rÚ returncoder r r Úis_alive™s   zBaseProcess.is_alivecCsJ |jdur |j ¡durtdƒ‚|j ¡d|_|`t |¡d|_dS)Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)rrr=ÚcloserArrr+rr r r rL¬s    zBaseProcess.closecCó|jSr©r4rr r r r)½ózBaseProcess.namecCs ||_dSrrN)rr)r r r r)Ás cCs |j dd¡S)NrF)r$Úgetrr r r rÆszBaseProcess.daemoncCs ||jd<dS)Nr©r$)rZdaemonicr r r rÍscCs |jdS©NÚauthkeyrQrr r r rSÕs zBaseProcess.authkeycCs t|ƒ|jd<dSrR)ÚAuthenticationStringr$)rrSr r r rSÙscCs$ | ¡|jdur |jS|j ¡Sr)r>rrrr r r Úexitcodeàs   zBaseProcess.exitcodecCs( | ¡|tur t ¡S|jo|jjSr)r>r r&r'rÚpidrr r r Úidentês zBaseProcess.identcCs, | ¡z|jWStytdƒd‚w)Nzprocess not started)r>rAÚAttributeErrorr=rr r r r@÷s  ÿzBaseProcess.sentinelcCsèd}|tur d}n&|jrd}n |jt ¡krd}n|jdur!d}n|j ¡}|dur-d}nd}t|ƒjd|j g}|jdurG|  d|jj ¡|  d|j¡|  |¡|duret   ||¡}|  d |¡|jrm|  d ¡d d  |¡S) NZstartedÚclosedÚunknownÚinitialZstoppedzname=%rzpid=%sz parent=%sz exitcode=%srz<%s>ú )r r+r(r&r'rrr1r2r4ÚappendrVÚ_exitcode_to_namerPrr3)rrUZstatusÚinfor r r Ú__repr__s0      zBaseProcess.__repr__c CsÌddlm}m}zÍzO|jdur| |j¡t d¡atƒa |  ¡t }|a t |j |j|ƒatjr6t ¡ ¡z| ¡W~n~w| d¡z | ¡d}W| ¡n| ¡wWnYty‰}z%|jdurhd}nt|jtƒrr|j}n tj t|jƒd¡d}WYd}~n?d}~wd}ddl }tj d|j!¡| "¡YWt #¡| d|¡| $¡|SWt #¡| d|¡| $¡|SWt #¡| d|¡| $¡|St #¡| d|¡| $¡w)Né)ÚutilÚcontextz child process calling self.run()rÚ z Process %s: z process exiting with exitcode %d)%ÚrbrcZ _start_methodZ_force_start_methodÚ itertoolsr;r"ÚsetrZ _close_stdinr Ú_ParentProcessr*r(rÚ threadingZ_HAVE_THREAD_NATIVE_IDZ main_threadZ_set_native_idÚ _after_forkr_r?Z_exit_functionÚ SystemExitÚcodeÚ isinstanceÚintÚsysÚstderrÚwriterÚ tracebackr)Ú print_excZ _shutdownZ_flush_std_streams)rZparent_sentinelrbrcZ old_processrUÚerrr r r Ú _bootstrap"sh    ÿ     € í€üü zBaseProcess._bootstrapcCs"ddlm}|j ¡| ¡dS)Nra©rb)rerbZ_finalizer_registryÚclearZ_run_after_forkersrvr r r rjRs   zBaseProcess._after_forkr)r2Ú __module__Ú __qualname__rr<r>r?rBrDrFr3rKrLÚpropertyr)ÚsetterrrSrUrWrVr@r`ruÚ staticmethodrjr r r r rGsJ  ÿ             0rc@seZdZdd„ZdS)rTcCs,ddlm}|ƒdurtdƒ‚tt|ƒffS)Nra)Úget_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)rcr}Ú TypeErrorrTÚbytes)rr}r r r Ú __reduce__^s  ÿzAuthenticationString.__reduce__N)r2rxryr€r r r r rT]s rTc@s6eZdZdd„Zdd„Zedd„ƒZd dd „ZeZdS) rhcCs4d|_||_||_d|_d|_d|_||_i|_dS)Nr F)r#r4Ú_pidr(rr+rAr$)rr)rVr@r r r r<ns z_ParentProcess.__init__cCsddlm}||jgdd S©Nr)rG)rH©Zmultiprocessing.connectionrGrA)rrGr r r rKxs z_ParentProcess.is_alivecCrMr)rrr r r rW|rOz_ParentProcess.identNcCs" ddlm}||jg|ddSr‚rƒ)rrHrGr r r r3€s z_ParentProcess.joinr) r2rxryr<rKrzrWr3rVr r r r rhls   rhc@seZdZdd„Zdd„ZdS)Ú _MainProcesscCs8d|_d|_d|_d|_d|_tt d¡ƒddœ|_dS)Nr Z MainProcessFé z/mp)rSZ semprefix) r#r4r(rr+rTr&Úurandomr$rr r r r<s  ÿz_MainProcess.__init__cCsdSrr rr r r rL¡rz_MainProcess.closeN)r2rxryr<rLr r r r r„s r„raéZSIGÚ_r)$Ú__all__r&roÚsignalrfriZ _weakrefsetrÚpathÚabspathÚgetcwdZ ORIGINAL_DIRÚOSErrorrrrr ÚobjectrrrTrhr„rr r;r"rgrr^rÚ__dict__Úitemsr)Zsignumr5r r r r ÚsB   ÿ  ! €