gk/gdZddlZddlZddlZddlZddlZddlmZ ejjejZ dZ dZdZdZGdd eZGd d eZGd d eZGddeZdaeaej2daea[iZeej>jAD]\Z!Z"e!dddk(sde!vsde!ee" <[!["eZ#y#e $rdZ YwxYw)) BaseProcesscurrent_processactive_childrenparent_processN)WeakSetc tSN)_current_process>/opt/alt/python312/lib64/python3.12/multiprocessing/process.pyrr%s r c6 tttSr )_cleanuplist _childrenr r r rr+s J  ?r c tSr )_parent_processr r r rr3s r cttD]7}|jx}s|j#tj |9yr )rr_popenpolldiscard)p child_popens r rr=s; )_88 #K #)9)9);)G   a r cLeZdZ dZddddifdddZdZdZdZd Zd Z dd Z d Z d Z e dZejdZe dZejdZe dZejdZe dZe dZeZe dZdZddZedZy)rctr )NotImplementedErrorselfs r _PopenzBaseProcess._PopenMs!!r Nr )daemonc$tt}tj|fz|_tjj |_t j|_tj|_ d|_ d|_ ||_ t||_t!||_|xs;t%|j&dzdj)d|jDz|_|||_t.j1|y)NF-:c32K|]}t|ywr )str).0is r z'BaseProcess.__init__..^s=nc!fns)next_process_counterr _identity_configcopyosgetpid _parent_pidname _parent_namer_closed_targettuple_argsdict_kwargstype__name__join_namer _danglingadd)rgrouptargetr1argskwargsr counts r __init__zBaseProcess.__init__Ps%&)33uh>'//446 99;,11   4[ F| >T$Z0036XX=dnn==>   DK dr c2|jr tdy)Nzprocess object is closed)r3 ValueErrorrs r _check_closedzBaseProcess._check_closedcs <<78 8 r cl |jr'|j|ji|jyyr )r4r6r8rs r runzBaseProcess.rungs0  << DLL$** 5 5 r c |jt|j||_|jj|_|`|`|`tj|yr ) rGrrrsentinel _sentinelr4r6r8rr>rs r startzBaseProcess.startnsX    kk$' -- L$*dl dr cZ |j|jjyr )rGr terminaters r rOzBaseProcess.terminates%   r cZ |j|jjyr )rGrkillrs r rQzBaseProcess.kills%   r c |j|jj|}|tj |yyr )rGrwaitrr)rtimeoutress r r;zBaseProcess.joinsC  kkw' ?   d # r c |j|tury|jy|jj}|ytj |y)NTF)rGr rrrr)r returncodes r is_alivezBaseProcess.is_alives\   # # ;; [[%%'     d #r c |j]|jj td|jjd|_|`t j |d|_y)Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)rrrFcloserLrrr3rs r rZzBaseProcess.closesl ;; "{{!) "PQQ KK   DK   d # r c|jSr r<rs r r1zBaseProcess.names zzr c||_yr r\)rr1s r r1zBaseProcess.names  r c< |jjddS)Nr F)r,getrs r r zBaseProcess.daemons  ||%00r c$ ||jd<y)Nr r,)rdaemonics r r zBaseProcess.daemons "* Xr c |jdSNauthkeyrars r rezBaseProcess.authkeys||I&&r c6 t||jd<yrd)AuthenticationStringr,)rres r rezBaseProcess.authkeys #7w"? Yr c |j|j |jS|jjSr )rGrrrs r exitcodezBaseProcess.exitcodes<   ;; ;; {{!!r c |j|turtjS|jxr|jj Sr )rGr r.r/rpidrs r identzBaseProcess.identsA   # #99; ;;24;;?? 2r cp |j |jS#t$r tddwxYw)Nzprocess not started)rGrLAttributeErrorrFrs r rKzBaseProcess.sentinelsA   >>> ! >23 = >s 5cd}|turd}nc|jrd}nT|jtjk7rd}n0|j d}n!|j j }|d}nd}t|jd|jzg}|j (|jd|j jz|jd|jz|j||*tj||}|jd |z|jr|jd d d j|zS) Nstartedclosedunknowninitialstoppedzname=%rzpid=%sz parent=%sz exitcode=%sr z<%s> )r r3r0r.r/rrr9r:r<appendrk_exitcode_to_namer_r r;)rristatusinfos r __repr__zBaseProcess.__repr__s # #F \\F    ,F [[ F{{'')H#""T ##Y%;< ;; " KK4;;??2 3 K$"2"223 F  (,,Xx@H KK 0 1 ;; KK !&&r cddlm}m} |j|j |jt j data |jt}|a t|j|j|at j"r"t!j$j' |j)~|j+d |j-d}|j/ t!jF|j+d|z|jI|S#~wxYw#|j/wxYw#t0$rw}|j2d}n^t5|j2t6r |j2}n7t8j:j=t?|j2dzd}Yd}~d}~wd}ddl }t8j:j=d|jBz|jEYxYw#t!jF|j+dz|jIwxYw)N)utilcontextz child process calling self.run()r z Process %s: z process exiting with exitcode %d)%r}r~ _start_method_force_start_method itertoolsrCr*setr _close_stdinr _ParentProcessr2r0r threading_HAVE_THREAD_NATIVE_ID main_thread_set_native_id _after_forkryrI_exit_function SystemExitcode isinstanceintsysstderrwriter% tracebackr1 print_exc _shutdown_flush_std_streams)rparent_sentinelr}r~ old_processriers r _bootstrapzBaseProcess._bootstrap"s#( &!!-++D,>,>?(q1 I    *K# ,!!4#3#3_FO//%%'668   " II8 9 & ##%    ! II88C D  # # %3 ##% vv~AFFC(66   QVVt!34 "H  JJ  _tyy8 9    !    ! II88C D  # # %sbB1E<D< EE1EH<D??EEE H A-G HAHH:Icdddlm}|jj|j y)Nr|r})rr}_finalizer_registryclear_run_after_forkersrs r rzBaseProcess._after_forkRs#   &&( !r r )r: __module__ __qualname__rrDrGrIrMrOrQr;rXrZpropertyr1setterr rerirlrkrKrzr staticmethodrr r r rrGs4 ""$T2&96$  $&" [[11  ]]**'' ^^@@ ""33 C  > >'>.`""r rceZdZdZy)rgcVddlm}| tdtt |ffS)Nr|)get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)r~r TypeErrorrgbytes)rrs r __reduce__zAuthenticationString.__reduce__^s3/   '2 $eDk^33r N)r:rrrr r r rgrg]s4r rgc4eZdZdZdZedZddZeZy)rctd|_||_||_d|_d|_d|_||_i|_y)Nr F)r+r<_pidr0rr3rLr,)rr1rkrKs r rDz_ParentProcess.__init__ns;    ! r c:ddlm}||jgd SNr)rS)rTmultiprocessing.connectionrSrL)rrSs r rXz_ParentProcess.is_alivexs3(!444r c|jSr )rrs r rlz_ParentProcess.ident|s yyr Nc< ddlm}||jg|yrr)rrTrSs r r;z_ParentProcess.joins  4 dnn w/r r ) r:rrrDrXrrlr;rkr r r rrls,50 Cr rceZdZdZdZy) _MainProcesscd|_d|_d|_d|_d|_t t jddd|_y)Nr MainProcessF z/mp)re semprefix) r+r<r0rr3rgr.urandomr,rs r rDz_MainProcess.__init__sB"   #7 2#G%*, r cyr r rs r rZz_MainProcess.closes r N)r:rrrDrZr r r rrs ,$ r rr|SIG_r")$__all__r.rsignalrr _weakrefsetrpathabspathgetcwd ORIGINAL_DIROSErrorrrrrobjectrrrgrrrr rCr*rrrwr__dict__itemsr1signumr=r r r rs&   77??9299;/L !O"&O"l454[B ; 0>"9??1% E  ..01LD& BQx3d?'(Z6'"2 & I s Ls*C00C:9C: