g-ddlZddlZddlZddlmZddlmZdZGddeZGdd eZ Gd d eZ Gd d eZ Gdde Z GddejZGdde Zej"dk7rGddejZGddejZGddejZGdde ZGdde ZGdd e Zeeed!Zej"d"k(r eed#Zn@eed$Zn4Gd%dejZGd&de Zd#eiZeed#Zd'Zej6Zd(Zd)Zd*Zy)+N)process) reductionc eZdZy) ProcessErrorN__name__ __module__ __qualname__r>/opt/alt/python312/lib64/python3.12/multiprocessing/context.pyrrr rc eZdZy)BufferTooShortNr rr rrrrr rc eZdZy) TimeoutErrorNr rr rrrrr rc eZdZy)AuthenticationErrorNr rr rrrrr rceZdZeZeZeZeZeejZ eejZ eejZ dZ dZ d"dZdZdZd#dZd$d Zd$d Zd Zd%d Zd&d Zd&dZdZ d'dZdZdZdddZdddZdZdZd#dZ dZ!dZ"dZ#d#dZ$d(dZ%d(dZ&e'dZ(e(jRd Z(d!Z*y)) BaseContextcJ tj}| td|S)Nzcannot determine number of cpus)os cpu_countNotImplementedError)selfnums rrzBaseContext.cpu_count)s&6lln ;%&GH HJr cb ddlm}||j}|j|S)Nr) SyncManagerctx)managersr get_contextstart)rrms rManagerzBaseContext.Manager1s- * D,,. /  r Tc ddlm}||S)Nr)Pipe) connectionr()rduplexr(s rr(zBaseContext.Pipe<s?$F|r c> ddlm}||jS)Nr)Lockr ) synchronizer,r#)rr,s rr,zBaseContext.LockAs1%((*++r c> ddlm}||jS)Nr)RLockr )r-r/r#)rr/s rr/zBaseContext.RLockFs-&))+,,r Nc@ ddlm}|||jS)Nr) Conditionr )r-r1r#)rlockr1s rr1zBaseContext.ConditionKs(*4#3#3#566r c@ ddlm}|||jS)Nr) Semaphorer )r-r4r#)rvaluer4s rr4zBaseContext.SemaphorePs(*D$4$4$677r c@ ddlm}|||jS)Nr)BoundedSemaphorer )r-r7r#)rr5r7s rr7zBaseContext.BoundedSemaphoreUs014+;+;+=>>r c> ddlm}||jS)Nr)Eventr )r-r9r#)rr9s rr9zBaseContext.EventZs%&))+,,r cD ddlm}|||||jS)Nr)Barrierr )r-r;r#)rpartiesactiontimeoutr;s rr;zBaseContext.Barrier_s"&(wT5E5E5GHHr c@ ddlm}|||jS)Nr)Queuer )queuesr@r#)rmaxsizer@s rr@zBaseContext.Queueds$!W$"2"2"455r c@ ddlm}|||jS)Nr) JoinableQueuer )rArDr#)rrBrDs rrDzBaseContext.JoinableQueueis$)W$*:*:*<==r c> ddlm}||jS)Nr) SimpleQueuer )rArFr#)rrFs rrFzBaseContext.SimpleQueuens$'t//122r cF ddlm}||||||jS)Nr)Pool)context)poolrHr#)r processes initializerinitargsmaxtasksperchildrHs rrHzBaseContext.Poolss*+I{H6F ,,.0 0r c" ddlm}||g|S)Nr)RawValue) sharedctypesrP)rtypecode_or_typeargsrPs rrPzBaseContext.RawValuezs%*(0400r c" ddlm}|||S)Nr)RawArray)rQrU)rrRsize_or_initializerrUs rrUzBaseContext.RawArrays$*(*=>>r )r2cF ddlm}||g|||jdS)Nr)Valuer2r!)rQrXr#)rrRr2rSrXs rrXzBaseContext.Values22'%--4))+- -r cD ddlm}|||||jS)Nr)ArrayrY)rQr[r#)rrRrVr2r[s rr[zBaseContext.Arrays)1'%':))+- -r cl tjdk(r ttddrddlm}|yyy)Nwin32frozenFr)freeze_support)sysplatformgetattrspawnr_)rr_s rr_zBaseContext.freeze_supports2  <<7 "wsHe'D -  (E "r c ddlm}|S)Nr) get_logger)utilre)rres rrezBaseContext.get_loggers  %|r c ddlm}||S)Nr) log_to_stderr)rfrh)rlevelrhs rrhzBaseContext.log_to_stderrsF'U##r c ddlm}y)Nr)r))r))rr)s rallow_connection_picklingz%BaseContext.allow_connection_picklings  !r c" ddlm}||y)Nr)set_executable)rcrn)r executablerns rrnzBaseContext.set_executables  *z"r c" ddlm}||y)Nr)set_forkserver_preload) forkserverrq)r module_namesrqs rrqz"BaseContext.set_forkserver_preloads  7|,r cz||S t|}|j|S#t$rtd|zdwxYw)Nzcannot find context for %r)_concrete_contextsKeyError ValueError_check_available)rmethodr!s rr#zBaseContext.get_contextsU >K N$V,C   N9FBC M Ns !:c|jSN)_namer allow_nones rget_start_methodzBaseContext.get_start_methods zzr ctd)Nz+cannot set start method of concrete context)rwrryforces rset_start_methodzBaseContext.set_start_methodsFGGr c6 tjdSNr)globalsgetrs rreducerzBaseContext.reducers (y}}[))r c|td<yr)r)rrs rrzBaseContext.reducers!* +r cyr{rrs rrxzBaseContext._check_availables r )Tr{)r)NN)r)NNrNF)+r r r rrrr staticmethodrcurrent_processparent_processactive_childrenrr&r(r,r/r1r4r7r9r;r@rDrFrHrPrUrXr[r_rerhrlrnrqr#rrpropertyrsetterrxrr rrrsL#NL-"7#:#:;O!'"8"89N"7#:#:;O  , - 7 8 ? - I 6 > 3 ?A"01 ? 37- DH- $ !#-H**  ^^++ r rc0eZdZdZedZedZy)ProcessNc\tjjj|Sr{)_default_contextr#r_Popen) process_objs rrzProcess._Popens"++-55<<[IIr cZtjjjSr{)rr#r _after_forkrr rrzProcess._after_forks ++-55AACCr r r r _start_methodrrrrr rrrs1MJJDDr rc@eZdZeZdZdfd ZddZddZdZxZ S)DefaultContextc ||_d|_yr{)r_actual_context)rrIs r__init__zDefaultContext.__init__s '#r cx|)|j|j|_|jSt| |Sr{)rrsuperr#)rry __class__s rr#zDefaultContext.get_contexts> >##+'+'<'<$'' '7&v. .r cz|j |s td| |rd|_y|j||_y)Nzcontext has already been set)r RuntimeErrorr#rs rrzDefaultContext.set_start_methodsA    +E=> > >e#'D #//7r cn|j|ry|j|_|jjSr{)rrr|r}s rrzDefaultContext.get_start_methods4    '#'#8#8D ##)))r c tjdk(rdgStjdk(rddgnddg}tjr|j d|S)Nr]rcdarwinforkrr)r`rarHAVE_SEND_HANDLEappend)rmethodss rget_all_start_methodsz$DefaultContext.get_all_start_methodssPK <<7 "9 +.<<8+Cw'&RYIZG))|,Nr r{r) r r r rrr#rrr __classcell__)rs@rrrs!G$/8*r rr]c eZdZdZedZy) ForkProcessrcddlm}||SNr)Popen) popen_forkrrrs rrzForkProcess._Popens )% %r Nr r r rrrrr rrrs  &  &r rc0eZdZdZedZedZy) SpawnProcessrccddlm}||Sr)popen_spawn_posixrrs rrzSpawnProcess._Popen 0% %r cyr{rrr rrzSpawnProcess._after_fork# r Nrrr rrr-  &  &    r rc eZdZdZedZy)ForkServerProcessrrcddlm}||Sr)popen_forkserverrrs rrzForkServerProcess._Popen*s /% %r Nrrr rrr(s$  &  &r rceZdZdZeZy) ForkContextrN)r r r r|rrrr rrr/s r rceZdZdZeZy SpawnContextrcNr r r r|rrrr rrr3 r rceZdZdZeZdZy)ForkServerContextrrc:tjs tdy)Nz%forkserver start method not available)rrrwrs rrxz"ForkServerContext._check_available:s-- !HII.r N)r r r r|rrrxrr rrr7s# Jr r)rrcrrrrcrc0eZdZdZedZedZy)rrccddlm}||Sr)popen_spawn_win32rrs rrzSpawnProcess._PopenNrr cyr{rrr rrzSpawnProcess._after_forkSrr Nrrr rrrLrr ceZdZdZeZyrrrr rrrXrr c(t|t_yr{)rurr)rys r_force_start_methodres'9&'A$r c$ttddS)Nspawning_popen)rb_tlsrr rget_spawning_popenrns 4)4 00r c|t_yr{)rr)popens rset_spawning_popenrqs Dr cZt!tdt|jzy)NzF%s objects should only be shared between processes through inheritance)rrtyper )objs rassert_spawningrts4# #%)#Y%7%7 8 $r ) rr` threadingrkrr__all__ Exceptionrrrrobjectr BaseProcessrrrarrrrrrrurrlocalrrrrrr rrs    9  \  <  , x &x |Dg!!D&[&Z<<7&g))& w** &G//&k{JKJ ')  ||x**