python (3.12.0)

(root)/
lib/
python3.12/
multiprocessing/
__pycache__/
context.cpython-312.opt-1.pyc

̑e-ddlZddlZddlZddlmZddlmZdZGddeZGdd	eZ	Gd
deZ
Gdd
eZGdde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__rK/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/multiprocessing/context.pyrrr
rceZdZy)BufferTooShortNr	rr
rrrrr
rceZdZy)TimeoutErrorNr	rr
rrrrr
rceZdZy)AuthenticationErrorNr	rr
rrrrr
rceZdZeZeZeZeZeejZ	eejZ
eejZdZdZ
d"dZdZdZd#dZd$d	Zd$d
ZdZd%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))BaseContextcHtj}|td|S)z(Returns the number of CPUs in the systemzcannot determine number of cpus)os	cpu_countNotImplementedError)selfnums  rrzBaseContext.cpu_count)s#lln;%&GHHJr
c`ddlm}||j}|j|S)zReturns a manager associated with a running server process

        The managers methods such as `Lock()`, `Condition()` and `Queue()`
        can be used to create shared objects.
        r)SyncManagerctx)managersrget_contextstart)rrms   rManagerzBaseContext.Manager1s(	*D,,./		r
Tcddlm}||S)z1Returns two connection object connected by a piper)Pipe)
connectionr()rduplexr(s   rr(zBaseContext.Pipe<s$F|r
c<ddlm}||jS)z#Returns a non-recursive lock objectr)Lockr )synchronizer,r#)rr,s  rr,zBaseContext.LockAs%((*++r
c<ddlm}||jS)zReturns a recursive lock objectr)RLockr )r-r/r#)rr/s  rr/zBaseContext.RLockF&))+,,r
Nc>ddlm}|||jS)zReturns a condition objectr)	Conditionr )r-r2r#)rlockr2s   rr2zBaseContext.ConditionKs*4#3#3#566r
c>ddlm}|||jS)zReturns a semaphore objectr)	Semaphorer )r-r5r#)rvaluer5s   rr5zBaseContext.SemaphorePs*D$4$4$677r
c>ddlm}|||jS)z"Returns a bounded semaphore objectr)BoundedSemaphorer )r-r8r#)rr6r8s   rr8zBaseContext.BoundedSemaphoreUs14+;+;+=>>r
c<ddlm}||jS)zReturns an event objectr)Eventr )r-r:r#)rr:s  rr:zBaseContext.EventZr0r
cBddlm}|||||jS)zReturns a barrier objectr)Barrierr )r-r<r#)rpartiesactiontimeoutr<s     rr<zBaseContext.Barrier_s(wT5E5E5GHHr
c>ddlm}|||jS)Returns a queue objectr)Queuer )queuesrBr#)rmaxsizerBs   rrBzBaseContext.Queueds!W$"2"2"455r
c>ddlm}|||jS)rAr)
JoinableQueuer )rCrFr#)rrDrFs   rrFzBaseContext.JoinableQueueis)W$*:*:*<==r
c<ddlm}||jS)rAr)SimpleQueuer )rCrHr#)rrHs  rrHzBaseContext.SimpleQueuens't//122r
cDddlm}||||||jS)zReturns a process pool objectr)Pool)context)poolrJr#)r	processesinitializerinitargsmaxtasksperchildrJs      rrJzBaseContext.Poolss)	I{H6F ,,.0	0r
c ddlm}||g|S)zReturns a shared objectr)RawValue)sharedctypesrR)rtypecode_or_typeargsrRs    rrRzBaseContext.RawValuezs*(0400r
c ddlm}|||S)zReturns a shared arrayr)RawArray)rSrW)rrTsize_or_initializerrWs    rrWzBaseContext.RawArrays*(*=>>r
)r3cDddlm}||g|||jdS)z$Returns a synchronized shared objectr)Valuer3r!)rSrZr#)rrTr3rUrZs     rrZzBaseContext.Values/'%--4))+-	-r
cBddlm}|||||jS)z#Returns a synchronized shared arrayr)Arrayr[)rSr]r#)rrTrXr3r]s     rr]zBaseContext.Arrays&'%':))+-	-r
cjtjdk(r ttddrddlm}|yyy)zCheck whether this is a fake forked process in a frozen executable.
        If so then run code specified by commandline and exit.
        win32frozenFr)freeze_supportN)sysplatformgetattrspawnra)rras  rrazBaseContext.freeze_supports-<<7"wsHe'D-(E"r
cddlm}|S)zZReturn package logger -- if it does not already exist then
        it is created.
        r)
get_logger)utilrg)rrgs  rrgzBaseContext.get_loggers	%|r
cddlm}||S)z8Turn on logging and add a handler which prints to stderrr)
log_to_stderr)rhrj)rlevelrjs   rrjzBaseContext.log_to_stderrs'U##r
cddlm}y)zVInstall support for sending connections and sockets
        between processes
        r)r)N)r))rr)s  rallow_connection_picklingz%BaseContext.allow_connection_picklings	!r
c ddlm}||y)zSets the path to a python.exe or pythonw.exe binary used to run
        child processes instead of sys.executable when using the 'spawn'
        start method.  Useful for people embedding Python.
        r)set_executableN)rerp)r
executablerps   rrpzBaseContext.set_executables
	*z"r
c ddlm}||y)zkSet list of module names to try to load in forkserver process.
        This is really just a hint.
        r)set_forkserver_preloadN)
forkserverrs)rmodule_namesrss   rrsz"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)ryrr{forces   rset_start_methodzBaseContext.set_start_methodsFGGr
c4tjdS)z_Controls how objects will be reduced to a form that can be
        shared with other processes.r)globalsgetrs rreducerzBaseContext.reducersy}}[))r
c|td<y)Nr)r)rrs  rrzBaseContext.reducers!*	+r
cyr}rrs rrzzBaseContext._check_availablesr
)Tr})r)NN)r)NNrNF)+r
rrrrrrstaticmethodrcurrent_processparent_processactive_childrenrr&r(r,r/r2r5r8r:r<rBrFrHrJrRrWrZr]rargrjrnrprsr#rrpropertyrsetterrzrr
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
rr
_start_methodrrrrr
rrrs1MJJDDr
rc@eZdZeZdZdfd	ZddZddZdZxZ	S)DefaultContextc ||_d|_yr})r_actual_context)rrKs  r__init__zDefaultContext.__init__s '#r
cx|)|j|j|_|jSt|
|Sr})rrsuperr#)rr{	__class__s  rr#zDefaultContext.get_contexts>>##+'+'<'<$'''7&v..r
cz|j
|std|
|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~rs  rrzDefaultContext.get_start_methods4'#'#8#8D ##)))r
ctjdk(rdgStjdk(rddgnddg}tjr|j	d|S)z=Returns a list of the supported start methods, default first.r_redarwinforkrt)rbrcrHAVE_SEND_HANDLEappend)rmethodss  rget_all_start_methodsz$DefaultContext.get_all_start_methodssM<<7"9+.<<8+Cw'&RYIZG))|,Nr
r}r)
r
rrrrr#rrr
__classcell__)rs@rrrs!G$/8*r
rr_c eZdZdZedZy)ForkProcessrcddlm}||SNr)Popen)
popen_forkrrrs  rrzForkProcess._Popens)%%r
Nr
rrrrrrr
rrrs
		&
	&r
rc0eZdZdZedZedZy)SpawnProcessrecddlm}||Sr)popen_spawn_posixrrs  rrzSpawnProcess._Popen0%%r
cyr}rrr
rrzSpawnProcess._after_fork#
r
Nrrr
rrr-
		&
	&
	
	r
rc eZdZdZedZy)ForkServerProcessrtcddlm}||Sr)popen_forkserverrrs  rrzForkServerProcess._Popen*s/%%r
Nrrr
rrr(s$
		&
	&r
rceZdZdZeZy)ForkContextrN)r
rrr~rrrr
rrr/sr
rceZdZdZeZySpawnContextreNr
rrr~rrrr
rrr3r
rceZdZdZeZdZy)ForkServerContextrtc:tjstdy)Nz%forkserver start method not available)rrryrs rrzz"ForkServerContext._check_available:s-- !HII.r
N)r
rrr~rrrzrr
rrr7s#	Jr
r)rrertrrerc0eZdZdZedZedZy)rrecddlm}||Sr)popen_spawn_win32rrs  rrzSpawnProcess._PopenNrr
cyr}rrr
rrzSpawnProcess._after_forkSrr
Nrrr
rrrLrr
ceZdZdZeZyrrrr
rrrXrr
c(t|t_yr})rwrr)r{s r_force_start_methodres'9&'A$r
c$ttddS)Nspawning_popen)rd_tlsrr
rget_spawning_popenrns4)400r
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
) rrb	threadingrmrr__all__	ExceptionrrrrobjectrBaseProcessrrrcrrrrrrrwrrlocalrrrrrr
r<module>rs	

	9		\		<		,	x
&x
|Dg!!D&[&Z<<7&g))&
w**
&G//&k{JKJ
')
||x**<W*EF)*<V*DE
w**
{
	&&8&ABBy1 r