g7dddlZddlZddlZddlZddlZddlZddlmZddlm Z gdZ dZ dZ dZ dZd Zd Zd Zdad ad ZdZdZdZdZd*dZdZdZeZdZdZej>Z ejBZ"dZ#dZ$iZ%ejBZ&Gdde'Z(d*dZ)dZ*d a+eee)e jXe jZfdZ.ej^e.Gdde'Z0Gd d!ejbZ2 ejfd"Z4d$Z6d%Z7d&Z8d'Z9d(Z:d)Z;y#e5$rd#Z4YwxYw)+N)_args_from_interpreter_flags)process) sub_debugdebuginfo sub_warning get_logger log_to_stderr get_temp_dirregister_after_fork is_exitingFinalizeForkAwareThreadLockForkAwareLocalclose_all_fds_exceptSUBDEBUG SUBWARNING multiprocessingz+[%(levelname)s/%(processName)s] %(message)sFcNtrtjt|g|ddiyyN stacklevel)_loggerlogrmsgargss ;/opt/alt/python312/lib64/python3.12/multiprocessing/util.pyrr,s" Hc7D7Q7cNtrtjt|g|ddiyyr)rrDEBUGr s r#rr0s" E344!4r$cNtrtjt|g|ddiyyr)rrINFOr s r#rr4s" D#333r$cNtrtjt|g|ddiyyr)rrrr s r#r r 8s" J9d9q9r$cddl}|j ts|jtadt_t tdr3tjttjtnLtjjtdiftjjtdif|jtS#|jwxYw)z0 Returns logger used by multiprocessing rN unregister)logging _acquireLockr getLogger LOGGER_NAME propagatehasattratexitr+_exit_functionregister _exithandlersremoveappend _releaseLock)r-s r#r r <s  '' 4G !G v|,!!.1/$$++^R,DE$$++^R,DE  N s B5C!!C3cddl}t}|jt}|j }|j ||j ||r|j|datS)zB Turn on logging and add a handler which prints to stderr rNT) r-r FormatterDEFAULT_LOGGING_FORMAT StreamHandler setFormatter addHandlersetLevel_log_to_stderrr)levelr-logger formatterhandlers r#r r Wsb  \F!!"89I##%G # g N Nr$cNtjdk(ryttdryy)NlinuxTgetandroidapilevelF)sysplatformr2r,r$r##_platform_supports_abstract_socketsrKls" ||ws() r$c|syt|tr|ddk(St|tr|ddk(Std|d)NFrzaddress type of z unrecognized) isinstancebytesstr TypeError)addresss r#is_abstract_socket_namespacerStsN '5!qzQ GS !qzT!! &wk? @@r$cjd}|||tj}|d|jd<yy)Nc,t|dtsyNr) issubclassFileNotFoundError)funcpatherr_infos r#onerrorz!_remove_temp_dir..onerrors(1+'89 :r$)r\tempdir)rcurrent_process_config)rmtreer]r\r^s r#_remove_temp_dirras> 7G$--/O"-1 *#r$c0tjjjd}|fddl}ddl}|j d}td|tdt|j|fd|tjjd<|S)Nr]rzpymp-)prefixzcreated temp directory %si)r" exitpriority) rr^r_getshutiltempfilemkdtemprrrar`)r]rfrgs r#r r s%%'//33I>G""'"2 ('2 'v}}g.F" $7>!)))4 Nr$cttj}|j|D]\\}}}} ||y#t$r}t d|Yd}~0d}~wwxYw)Nz after forker raised exception %s)list_afterfork_registryitemssort Exceptionr)rlindexidentrYobjes r#_run_after_forkersrssa $**, -E JJL%*!tc 8 I&+ 8 3Q 7 7 8sA A% A  A%cH|tttt||f<yN)rknext_afterfork_counterid)rqrYs r#r r sEH012c7DABr$cNeZdZdZddZdeeejfdZ dZ dZ dZ y) rzA Class which supports object finalization using weakrefs Nc||4t|ts$tdj|t ||t j |||_n | td||_ ||_ |xsi|_ |ttf|_tj |_|t$|j<y)Nz3Exitpriority ({0!r}) must be None or int, not {1!s}z+Without object, exitpriority cannot be None)rNintrQformattypeweakrefref_weakref ValueError _callback_args_kwargsrv_finalizer_counter_keyosgetpid_pid_finalizer_registry)selfrqcallbackr"kwargsrds r#__init__zFinalize.__init__s  $jc.JELL $|"467 7 ?#KKT2DM  !JK K! | !4(:#;< IIK )-DII&r$cr ||j=|j|k7r |dd}nO|d|j|j|j|j|ji|j}dx|_x|_x|_x|_|_|S#t $r |dYywxYw)zQ Run the callback unless it has already been called or cancelled z+finalizer ignored because different processNz/finalizer calling %s with args %s and kwargs %szfinalizer no longer registered)rrrrrrKeyError)rwrrrrress r#__call__zFinalize.__call__s #DII.yyFH$GHK..$**dllD$dnndjjADLLA7; ) rAttributeErrorrQ __class__rgetattrrrrPrr)rrqxs r#__repr__zFinalize.__repr__s --/C ;&)@)@@ @ '' DNNC E :: S_, ,A << s4<<00 0A 99Q< # "S1%66 6A3w * C sC((C<;C<)r,NN) r __module__ __qualname____doc__rrrrrrrrrr,r$r#rrs3.&&9$RYY 0 <0 r$rc|tyd}nfd}ttDcgc] }||s |}}|jd|D].}tj|}|t d| |0tjyycc}w#t $rddl}|jYmwxYw)z Run all finalizers whose exit priority is not None and at least minpriority Finalizers with highest priority are called first; finalizers with the same priority will be called in reverse order of creation. Nc|dduSrVr,)ps r#z!_run_finalizers..s qt4'r$c&|dduxr|dk\SrVr,)r minprioritys r#rz!_run_finalizers..sqt4'?AaDK,??r$T)reversez calling %sr) rrjrmrerrn traceback print_excclear)rfkeykeys finalizerrs` r#_run_finalizersrs"  ' ? 34 ?4C#C4D ?IIdI'++C0  lI . & !!# @ & ##% &s BB5BB;:B;c"txstduS)z6 Returns true if the process is shutting down N)_exitingr,r$r#rr;s  'x4''r$c\tsda|d|d|d|u|D]<}|js|d|j|jj >|D]%}|d|j|j '|d|yy)NTzprocess shutting downz2running all "atexit" finalizers with priority >= 0rz!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)rdaemonname_popen terminatejoin)rrractive_childrenr^rs r#r4r4Cs  $% BC   (%&88.ss||/A/A/Cr$)r rs r#rzForkAwareLocal.__init__s D"CDr$ct|dfS)Nr,)r}rs r# __reduce__zForkAwareLocal.__reduce__sDz2~r$N)rrrrrr,r$r#rrs Er$r SC_OPEN_MAXct|dtgz}|jtt |dz D]$}t j ||dz||dz&y)Nr)rjMAXFDrmrangelenr closerange)fdsis r#rrsR s)r5k !CHHJ 3s8a<  c!fQhAaC)!r$ctjy tjj t j t jt j} t |ddt_y#ttf$rY]wxYw#t j|xYw#ttf$rYywxYw)Nzutf-8F)encodingclosefd) rIstdincloseOSErrorrropendevnullO_RDONLY)fds r# _close_stdinrs yy   WWRZZ - R'5ACI Z      HHRL  Z    s4A=2B-%B=BBB**B--B?>B?c tjj tj jy#ttf$rY1wxYw#ttf$rYywxYwru)rIstdoutflushrrstderrr,r$r#_flush_std_streamsrs]     J '    J '   s"AAAAA'&A'cddl}ddl}ttt t |}t j\}} |j||gd|dddddddd||dddddddd|jt j|t j|S#t j|t j|wxYw)NrTrF) _posixsubprocess subprocesstuplesortedmapr{rpipe fork_exec _USE_VFORKr)rZr"passfdsrr errpipe_read errpipe_writes r#spawnv_passfdsrsF3sG,-.G"$'')L- )) 4&$t BBL- 5"dD$D  ! ! #    s 1B,C c<|D]}tj|y)z/Close each file descriptor given as an argumentN)rr)rrs r# close_fdsrs  r$c ddlm}tjddlm}|j jddlm}|jjt|j|jy)zKCleanup multiprocessing resources when multiprocessing tests completed.r)support) forkserver)resource_trackerN) testrr_cleanuprr _forkserver_stopr_resource_trackerr gc_collect reap_children)rrrs r#_cleanup_testsrsc +  "1&&,,.  r$ru)rs   3        F 854:6*AAB 2 $2g113$Y__&8I$Y__&SvSl&$X( E?#*#:#:#*#:#:(T *&*"Y__ BJJ} %E* .    Q EsD%%D/.D/