e/ /SQrSSKrSSKrSSKrSSKrSSKrSSKJr \RR\R"55r Sr SrSrSr"SS \5r"S S \5r"S S \5r"SS\5rSq\"5q\R2"S5q\"5qC0r\"\R>RA55H"ur!r"\!SSS:XdMS\!;dMS\!3\\"*'M$ C!C"\"5r#g!\ a Sr Nf=f)) BaseProcesscurrent_processactive_childrenparent_processN)WeakSetc[$)z8 Return process object representing the current process )_current_process=/opt/imh/python3.13/lib/python3.13/multiprocessing/process.pyrr%s  r c4[5 [[5$)zF Return list of process objects corresponding to live child processes )_cleanuplist _childrenr r r rr+s J  ?r c[$)z7 Return process object representing the parent process )_parent_processr r r rr3s  r c[[5H@nUR=n(dMUR5cM+[R U5 MB gN)rr_popenpolldiscard)p child_popens r rr=s; )_88 #K #)9)9);)G   a r c^\rSrSrSrSrSSSS04SS.SjjrSrS rS r S r S r SS jr Sr Sr\S5r\R"S5r\S5r\R"S5r\S5r\R"S5r\S5r\S5r\r\S5rSrSSjr\S5rSrg)rGzt Process objects represent activity that is run in a separate process The class is analogous to `threading.Thread` c[er)NotImplementedErrorselfs r _PopenBaseProcess._PopenMs!!r Nr )daemoncBUbS5e[[5n[RU4-Ul[RR 5Ul[ R"5Ul[RUl SUl SUl X l [U5Ul[!U5UlU=(d; [%U5R&S-SR)SUR55-UlUbX`l[.R1U5 g)Nz#group argument must be None for nowF-:c38# UHn[U5v M g7fr)str).0is r 'BaseProcess.__init__..^s=nc!ffns)next_process_counterr _identity_configcopyosgetpid _parent_pidname _parent_namer_closed_targettuple_argsdict_kwargstype__name__join_namer" _danglingadd)rgrouptargetr4argskwargsr"counts r __init__BaseProcess.__init__Ps}CCC}%&)33uh>'//446 99;,11   4[ F| >T$Z0036XX=dnn==>   K dr c<UR(a [S5eg)Nzprocess object is closed)r6 ValueErrorrs r _check_closedBaseProcess._check_closedcs <<78 8 r ctUR(a'UR"UR0URD6 gg)zA Method to be run in sub-process; can be overridden in sub-class N)r7r9r;rs r runBaseProcess.rungs) << LL$** 5 5 r cUR5 URbS5eUR[R"5:XdS5e[ R RS5(aS5e[5 URU5UlURRUl U? U? U?[R!U5 g)z Start child process Nzcannot start a process twicez:can only start a process object created by current processr"z3daemonic processes are not allowed to have children)rKrr3r1r2r r/getrr sentinel _sentinelr7r9r;rrArs r startBaseProcess.startns {{"B$BB"299;. LK L.#++//99 ED E9 kk$' -- L$*dl dr cXUR5 URR5 g)zD Terminate process; sends SIGTERM signal or uses TerminateProcess() N)rKr terminaters r rWBaseProcess.terminates   r cXUR5 URR5 g)zD Terminate process; sends SIGKILL signal or uses TerminateProcess() N)rKrkillrs r rZBaseProcess.kills   r cUR5 UR[R"5:XdS5eURcS5eURR U5nUb[ RU5 gg)z% Wait until child process terminates zcan only join a child processNzcan only join a started process)rKr3r1r2rwaitrr)rtimeoutress r r>BaseProcess.joinsr 299;.O0OO.{{&I(II&kkw' ?   d # r cUR5 U[LagUR[R"5:XdS5eUR cgUR R 5nUcg[RU5 g)z! Return whether process is alive Tzcan only test a child processF) rKr r3r1r2rrrr)r returncodes r is_aliveBaseProcess.is_alivesu  # #299;.O0OO. ;; [[%%'     d #r cURb^URR5c [S5eURR5 SUlU?[ R U5 SUlg)z Close the Process object. This method releases resources held by the Process object. It is an error to call this method if the child process is still running. Nz^Cannot close a process while it is still running. You should first call join() or terminate().T)rrrJcloserSrrr6rs r rfBaseProcess.closesg ;; "{{!) "PQQ KK   DK   d # r cUR$r)r?rs r r4BaseProcess.names zzr cH[U[5(dS5eXlg)Nzname must be a string) isinstancer'r?)rr4s r r4ris $$$=&==$ r c:URRSS5$)z$ Return whether process is a daemon r"F)r/rQrs r r"BaseProcess.daemons ||%00r cHURbS5eXRS'g)z! Set whether process is a daemon Nzprocess has already startedr")rr/)rdaemonics r r"rms& {{"A$AA"!) Xr c URS$)Nauthkey)r/rs r rqBaseProcess.authkeys||I&&r c4[U5URS'g)z" Set authorization key of process rqN)AuthenticationStringr/)rrqs r rqrrs #7w"? Yr cUR5 URc UR$URR5$)z= Return exit code of process or `None` if it has yet to stop )rKrrrs r exitcodeBaseProcess.exitcodes7  ;; ;; {{!!r cUR5 U[La[R"5$UR=(a URR $)zE Return identifier (PID) of process or `None` if it has yet to start )rKr r1r2rpidrs r identBaseProcess.idents<  # #99; ;;24;;?? 2r cpUR5 UR$![a [S5Sef=f)zc Return a file descriptor (Unix) or handle (Windows) suitable for waiting for process termination. zprocess not startedN)rKrSAttributeErrorrJrs r rRBaseProcess.sentinels<  >>> ! >23 = >s 5cSnU[LaSnOlUR(aSnOXUR[R"5:waSnO2UR cSnO"UR R 5nUbSnOSn[U5RSUR-/nUR b(URSUR R-5 URSUR-5 URU5 Ub)[RX5nURS U-5 UR(aURS 5 S S RU5-$) Nstartedclosedunknowninitialstoppedzname=%rzpid=%sz parent=%sz exitcode=%sr"z<%s> )r r6r3r1r2rrr<r=r?appendry_exitcode_to_namerQr"r>)rrvstatusinfos r __repr__BaseProcess.__repr__s # #F \\F    ,F [[ F{{'')H#""T ##Y%;< ;; " KK4;;??2 3 K$"2"223 F  (,,X@H KK 0 1 ;; KK !&&r cSSKJnJn URbUR UR5 [ R "S5q[5q UR5 [nUq [URURU5q[ R"(a#[ R$"5R'5 UR)5 AUR+S5 UR-5 Sn[ RD"5 UR+SU-5 URG5 U$!Af=f![.anUR0cSnSnAN_[3UR0[45(aUR0nSnAN[6R8R;[=UR05S-5 SnSnANSnAf SnSSKn[6R8R;SUR@-5 URC5 GN=f![ RD"5 UR+SW-5 URG5 f=f)N)utilcontextz child process calling self.run()r z Process %s: z process exiting with exitcode %d)$rr _start_method_force_start_method itertoolsrFr-setr _close_stdinr _ParentProcessr5r3r threading_HAVE_THREAD_NATIVE_ID main_thread_set_native_id _after_forkrrN SystemExitcoderkintsysstderrwriter' tracebackr4 print_exc _shutdown_flush_std_streams)rparent_sentinelrr old_processrvers r _bootstrapBaseProcess._bootstrap"s#% &!!-++D,>,>?(q1 I    *K# ,!!4#3#3_FO//%%'668   " II8 9 HHJH    ! II88C D  # # %-  vv~AFFC((66   QVVt!34 "H  JJ  _tyy8 9    !    ! II88C D  # # %s[B9D9D3$D93D66D99 H GH+GH7G>HAH  H;I cdSSKJn URR5 UR 5 g)Nrr)rr_finalizer_registryclear_run_after_forkersrs r rBaseProcess._after_forkOs#   &&( !r ) r9r6r/r.r;r?r5r3rrSr7r"r)r= __module__ __qualname____firstlineno____doc__r rGrKrNrTrWrZr>rcrfpropertyr4setterr"rqrvrzryrRrr staticmethodr__static_attributes__r r r rrGs4 ""$T2&96$  $&" [[11  ]]**'' ^^@@ ""33 C  > >'>+Z""r rc\rSrSrSrSrg)rtiZcXSSKJn U"5c [S5e[[ U544$)Nr)get_spawning_popenzJPickling an AuthenticationString object is disallowed for security reasons)rr TypeErrorrtbytes)rrs r __reduce__AuthenticationString.__reduce__[s3/   '2 $eDk^33r r N)r=rrrrrr r r rtrtZs4r rtc>\rSrSrSrSr\S5rSSjr\r Sr g) riicnSUlXlX lSUlSUlSUlX0l0Ulg)Nr F)r.r?_pidr3rr6rSr/)rr4ryrRs r rG_ParentProcess.__init__ks5    ! r c<SSKJn U"UR/SS9(+$)Nrr]r^multiprocessing.connectionr]rS)rr]s r rc_ParentProcess.is_aliveus3(!444r cUR$r)rrs r rz_ParentProcess.identys yyr Nc4SSKJn U"UR/US9 g)z& Wait until parent process terminates rrrNr)rr^r]s r r>_ParentProcess.join}s 4 dnn w/r )r6r/r.r?r3rrrSr) r=rrrrGrcrrzr>ryrr r r rris,50 Cr rc \rSrSrSrSrSrg) _MainProcessicSUlSUlSUlSUlSUl[ [ R"S55SS.Ulg)Nr MainProcessF z/mp)rq semprefix) r.r?r3rr6rtr1urandomr/rs r rG_MainProcess.__init__sB"   #7 2#G%*, r cgrr rs r rf_MainProcess.closes r )r6r/r.r?r3rN)r=rrrrGrfrr r r rrs ,$ r rrSIG_r$)$__all__r1rsignalrr _weakrefsetrpathabspathgetcwd ORIGINAL_DIROSErrorrrrrobjectrrrtrrrr rFr-rrrr__dict__itemsr4signumr@r r r rs"   77??299;/L !L"&L"f454[B ; 0>??1% E  ..01LD& BQx3d?'(Z6'"2 & I m Ls*C77DD