python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
_test_multiprocessing.cpython-311.opt-2.pyc

eU'RddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"dd	lm#Z#ej$d
Z%ej&ddl'Z'ddl(Z)ddl*Z)ddl+Z)ddl,Z)ddl-Z)ddl.Z)ddl)m/Z/	ddl)m0Z0e0j1Z2n
#e3$rd
Z2YnwxYw	ddl4m5Z5m6Z6dZ7n
#e3$rd
Z7YnwxYw	ddl)m8Z8dZ9n
#e3$rd
Z9YnwxYw	ddl:Z:n
#e3$rdZ:YnwxYwej;rej<ddZ=dZ>dZ?dZ@e	jAdkr	ddl)mBZBdZCe/jDZEdZFd
ZGeGrd\ZHZIZJnd\ZHZIZJejKZLeMe%dd
ZNejOdkZPddl(mQZQdZR	e	jSdZTn	#d ZTYnxYwd!d"gZU	dd#lVmWZWmXZXmYZYmZZZn#e3$re[ZWdxZXxZYZZYnwxYwd$Z\d%Z]Gd&d'ej^Z_Gd(d)e[Z`Gd*d+e[Zad,ZbGd-d.ZcGd/d0eaZdGd1d2e)jeZfGd3d4eaZgd5Zhd6ZiGd7d8eaZjGd9d:eaZkGd;d<eaZlGd=d>eaZmGd?d@eaZnGdAdBe[ZodCZpGdDdEe[ZqGdFdGe[ZrGdHdIeaZsGdJdKeaZtGdLdMeaZuGdNdOeaZvddQZwdRZxdSZydTZzGdUdVe[Z{GdWdXe|Z}dYZ~GdZd[eaZd\Zd]ZGd^d_eaZGd`daeaZddbl,mZmZmZGdcdde[ZdeZGdfdgeZGdhdieZedjekedledmnedoeepGdqdreaZejZdsZGdtdueZedvekGdwdxeZedvdyZGdzd{eaZejd|Gd}d~eaZe>dZGddeaZGddeaZGddeaZGddeaZeje2dejd|GddeaZGddeaZGddeWZGddeaZeje9dejd|GddeaZGddeaZGddej^ZGddeaZGddeaZGddej^Zejd|Gddej^ZdZejd|Gddej^ZdZdZdZdZGdde[ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZGddej^ZejejOdkdGddej^ZGddej^ZGd„dej^Zejd|GdĄdej^ZGdƄdej^ZGdȄdej^ZGdʄde[ZGd̄deZGd΄deZGdЄdeZ	dd҄Zejee%dӦdԦejejOdkd֦Gdׄdej^ZdS)N)support)hashlib_helper)
import_helper)	os_helper)
script_helper)
socket_helper)threading_helper)warnings_helper_multiprocessing)util)	reductionF)ValuecopyT)
shared_memoryz?libasan has a pthread_create() dead lock related to thread+fork皙?c,|dS)Nlatin)encode)ss N/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/_test_multiprocessing.pyrr[s88Gct|tjjr*||dSdSN)
isinstancemultiprocessingqueuesQueueclosejoin_thread)queues rclose_queuer!_sI%/566




rc.tj|dSr)r	r)processs rjoin_processr$es )))))rposix)resource_trackerc:tj||dSr)r&_CLEANUP_FUNCS)namertypes  r_resource_unlinkr+ns'.t44444r)g=
ףp=?gffffff?gffffff?)rrrHAVE_BROKEN_SEM_GETVALUEwin32waitc8||dkrd}t|g|S)Nr.)handletimeouts  rwait_for_handler4s'w}}'"""rSC_OPEN_MAX__main__z$test.test_multiprocessing_forkserver)	Structurec_intc_double
c_longlongc	d}	tjd}n#ttf$rYdSwxYw|dks||krdSt	jd|z)Nr6SC_SEM_NSEMS_MAXzHThe OS doesn't support enough semaphores to run the test (required: %d).)ossysconfAttributeError
ValueErrorunittestSkipTest)	nsems_minnsemss  rcheck_enough_semaphoresrGsKI
-..J'
{{ey((

>@IJKKKs//c	fd}|S)NcJtjfd}|S)Ncztjx}dkrtjd|d|i|S)Nspawn
start_method=z, not 'spawn'; )rget_start_methodrCrD)argskwargsstart_methodreason	test_items   rspawn_check_wrapperzKonly_run_in_spawn_testsuite.<locals>.decorator.<locals>.spawn_check_wrappersS / @ B BBwNN'(Q<(Q(Q(Q(QRRR9d-f---r)	functoolswraps)rRrSrQs` r	decoratorz.only_run_in_spawn_testsuite.<locals>.decorators?		#	#	.	.	.	.	.
$	#	.
#"r)rQrVs` ronly_run_in_spawn_testsuiterXs)	#####rcVeZdZ	ejejdkddZdS)TestInternalDecoratorsr-ztest requires that fork exists.c2tjdkrtjd	t	dd}n/#t
$r"}|d|Yd}~nd}~wwxYwtjd}	tjdd||d	tjd
d|	tj5}|dddn#1swxYwY|
dt|j|
dt|jtj|ddS#tj|dwxYw)NrKz'only run in test_multiprocessing_spawn.ztesting this decoratorcdSNrWrWrrreturn_four_if_spawnzUTestInternalDecorators.test_only_run_in_spawn_testsuite.<locals>.return_four_if_spawnsqrz.expected decorated `def` not to raise; caught T
allow_noneforcer^forkrL)
rrMrCrDrX	Exceptionfailset_start_methodassertEqualassertRaisesassertInstr	exception)selfr_errorig_start_methodctxs     r test_only_run_in_spawn_testsuitez7TestInternalDecorators.test_only_run_in_spawn_testsuites+--88#$MNNN	N
()A
B
B

C
B

	N	N	NIILsLLMMMMMMMM	N,<MMM		L,WDAAAA1133Q777,V4@@@@""8#455
'$$&&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'MM2C
4F4FGGGMM/3s}+=+=>>>,->dKKKKKKO,->dKKKKKsIA
A2A--A2A)E>4D?E>DE>DAE>>FN)__name__
__module____qualname__rCskipIfsysplatformrqrWrrrZrZsMLX_S\W,.OPPLLQPLLLrrZceZdZdZdZdS)
TimingWrapperc"||_d|_dSr)funcelapsed)rmr{s  r__init__zTimingWrapper.__init__s	rctj}	|j|i|tj|z
|_S#tj|z
|_wxYwr)time	monotonicr{r|)rmrNkwdsts    r__call__zTimingWrapper.__call__s^N	049d+d++>++a/DLL4>++a/DL////s	=ANrrrsrtr}rrWrrryrys200000rryc(eZdZdZdZdZdZeZdS)BaseTestCase)	processesmanagerthreadscFtr|||ddSdSN)
CHECK_TIMINGSassertAlmostEqualrmabs   rassertTimingAlmostEqualz$BaseTestCase.assertTimingAlmostEquals2	,""1a+++++	,	,rc\	||}|||S#t$rYdSwxYwr)rhNotImplementedError)rmvaluer{rNress     rassertReturnsIfImplementedz'BaseTestCase.assertReturnsIfImplementedsN	0$+C##E3///#			DD	s
++c td)Nz#shouldn't try to pickle a test case)r)rmrNs  r
__reduce__zBaseTestCase.__reduce__s!"GHHHrN)rrrsrt
ALLOWED_TYPESrrr
__reduce_ex__rWrrrrsJ7M,,,000IIIMMMrrc	|S#t$r:	|jcYS#t$r"	|jcYcYS#t$rtwxYwwxYwwxYwr)	get_valuerA_Semaphore__value_valuerrms rrrs	*~~***	*))))	*	*	*
*{"""""!
*
*
*))
*	**s8
A*A
AAAAAAAceZdZdZdS)
DummyCallablec0|ddSNput)rmqcs   rrzDummyCallable.__call__*s	arN)rrrsrtrrWrrrr)s#rrceZdZdZdZdZejddZe	dZ
dZe	dZd	Z
e	d
ZdZe	dZe	d
ZdZejejddZe	dZe	dZe	dZdZdZdZdZdZe	dZ dZ!e	dZ"dZ#e	d0dZ$d Z%ejd!d"Z&d#Z'e	d$Z(d%Z)e	d&Z*d'Z+e	ifd(Z,d)Z-d*Z.e	d1d,Z/d-Z0d.Z1d/Z2dS)2_TestProcessrrc@|jdkr-|d|j|}|j}||||j||t|t|dk||jtj||jddS)Nrtest not appropriate for {}r)TYPEskipTestformatcurrent_processauthkey
assertTrueis_alivedaemonassertIsInstancebyteslenrhidentr?getpidexitcode)rmcurrentrs   rtest_currentz_TestProcess.test_current3s9	!!MM7>>tyIIJJJ&&((/((**+++GN*+++gu---Gq()))	444)400000rc|jdkr|d|jtjtjtjtjg}|D]n}|||}|	|
||jdodS)Nrztest not appropriate for r)
rrrv
executablerpathlibPathset_executableProcessstartjoinrhr)rmpathspathps    rtest_set_executablez _TestProcess.test_set_executableAs9	!!MMAdiAABBBNN!!##L((

	,	,D%%%A
GGIII
FFHHHQZ++++	,	,rcpuc	dddgdf}ttf}tj||}|D]\}}|||5|d}||j|||f}d|_|	|
}||||t|dddn#1swxYwYdS)Nrrkr)rN	args_typetargetrNT)listtuple	itertoolsproductsubTestrr
_test_argsrrgetrhrr!)	rm
args_cases
args_types
test_casesrNrrr
child_argss	         rtest_args_argumentz_TestProcess.test_args_argumentPs;T*
E]
&z:>>
)
	
	OD)49==	
	
JJqMMLLiiD	>R>RLSS			UUWW
  T222A	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	s	B%C::C>	C>	c0||dSrr)clsrargs   rrz_TestProcess._test_argses	c




rc|jdkr-|d|j||j}||j|j||jd}||j||jd}|	|jdS)NrrrTrrF)
rrrr_testrhrrrassertFalse)rmproc0proc1proc2s    rtest_daemon_argumentz!_TestProcess.test_daemon_argumentis9	!!MM7>>tyIIJJJDJ//t';';'='='DEEEDJt<<%%%DJu==&&&&&rcR|}||||||j|jdkrC|t	|j||jdSdS)Nr)rrr)rrrpid)rrrNrrs     rrz_TestProcess._testus%%''	d	d	gl8y  
EE%(()))
EE'+! rc|jdkr-|d|j|||d\}}||j|f}||	|
\}}|||j
||tj|||jdS)NrrFduplexr)rrrassertIsNoneparent_processPiper_test_send_parent_processrrrecvrhrrr?rr))rmrconnwconnr
parent_pidparent_names      rtest_parent_process_attributesz+_TestProcess.test_parent_process_attributess9	!!MM7>>tyIIJJJ$--//000yyy..uLL >eXLNN					"'**,,
KT%9%9%;%;%?@@@RY[[111d&:&:&<&<&ABBBBBrctddlm}||j|jgdS)Nrr)multiprocessing.processrsendrr)rrrs   rrz&_TestProcess._test_send_parent_processsG::::::

NN$$(..*:*:*?@AAAAArc|jdkr-|d|j|d\}}||j|f}||tj	std|}||d|
||tj	std|}||d	dS)
NrrFrrr3z(Could not communicate with child processalive	not alive)rrrrr_test_create_grandchild_processrpollrLONG_TIMEOUTAssertionErrorrrh	terminater)rmrrrparent_process_statuss     rtest_parent_processz _TestProcess.test_parent_processs89	!!MM7>>tyIIJJJ
yyy..uLL7ui

I
I				zz'"6z77	M !KLLL %

.888	


	zz'"6z77	M !KLLL %

.<<<<<rc||j|f}|tjddS)Nri,)r_test_report_parent_statusrrsleep)rrrs   rrz,_TestProcess._test_create_grandchild_processs:KKs=UIKNN				
3rc.ddlm}||rdnd|t
j||rdnddS)Nrrrrr)rrrrrr
SHORT_TIMEOUTrs   rr	z'_TestProcess._test_report_parent_statuss::::::

nn..7799J77{KKKg&;<<<

nn..7799J77{KKKKKrc|d}|}|ddf}ddd}d}||j|||}d|_|}|jd	kr ||j|j||	d
||jd|
|||t|tu||jd|||jd||	d||||||dd||||||j|jd	krZ|||j|||j|||jd||	d
|
||t-|dS)NrgRQ@)hellobyeSomeProcess)rrNrOr)TrFr)rEventrrrrrrhrrassertNotInactive_childrenrtyperrrrjrr)rrr!)rmrerNrOr)rrs        rtest_processz_TestProcess.test_processsJJqMMJJLL1ayD))LL:Dd


&&((9	!!QY888u---4(((D0022333T113344<===T***				T***t,,,

a--//000$qrr(+++&)))!&)))9	!!QUUWWgo666QUUWWae,,,	Q'''u---D0022333Arzneeds native_idc|jdkr-|d|jtjj}|d}||j|f}|	|
}|t||
||dS)Nrrrr)rrr	threadingmain_thread	native_idrr"_test_process_mainthread_native_idrrrr!assertNotEqual)rmcurrent_mainthread_native_idrrchild_mainthread_native_ids     r!test_process_mainthread_native_idz._TestProcess.test_process_mainthread_native_ids9	!!MM7>>tyIIJJJ'0'<'>'>'H$JJqMMLL GqdLSS				%&UUWW"	A8:TUUUUUrc`tjj}||dSr)rrrr)rrmainthread_native_ids   rrz/_TestProcess._test_process_mainthread_native_ids-(466@	"#####rc.tjddS)Ndrr
rs r_sleep_somez_TestProcess._sleep_somes
3rc.tj|dSrr&)rdelays  r_test_sleepz_TestProcess._test_sleeps
5rc|jdkr-|d|j||jd_|d|	|
|jdtj
}||dd||jd|d||dd||jd|dt!jd|t%t&d	rÈfd
}t'jt&j|}	t'jd||dt'jdt'jt&j|nV#t'jdt'jt&j|wxYw||d||jd|d||

jS)
NrrrTrr1r>ralarmc(tdz)Nzjoin took too long: %sRuntimeError)rNrs rhandlerz+_TestProcess._kill_process.<locals>.handlers"#;a#?@@@r
F)rrrrr(rrrhrrjrrryrrr|rr
hasattrsignalSIGALRMr-r)rmmethrr1old_handlerrs     @r
_kill_processz_TestProcess._kill_processs9	!!MM7>>tyIIJJJLL 0L11				t,,,

a--//000T***QV$$a$'''$$T\3777t,,,b4((($$T\3777t,,,	
1


Q67##
	+
A
A
A
A
A -@@K
;R     ...Q
fnk::::Q
fnk::::TTVVT***$$T\3777u---D0022333	zs2I225J'c|tjj}||t
jdSr)r8rrrrhr4SIGTERMrmrs  rtest_terminatez_TestProcess.test_terminate2s;%%o&=&GHHFN?33333rc|tjj}tjdkr#||tjdS||tj	dSNnt)
r8rrkillr?r)rhr4SIGKILLr:r;s  r	test_killz_TestProcess.test_kill6sf%%o&=&BCC
7d??X77777X77777rc	tj}n#t$rd}YnwxYw|t	|t
u||dkdSr)r	cpu_countrrrint)rmcpuss  rtest_cpu_countz_TestProcess.test_cpu_count=st	",..DD"			DDD	T

c)***	"""""s%%c|t|t|t
jtf}|||d|_	|
|||||||dSNrT)
rhrrrrrr
DELTArrrrjrrmrs  rtest_active_childrenz!_TestProcess.test_active_childrenEsd224455t<<<LL
%L::D0022333				

a--//000	D002233333rc||t|dkr\tdD]N}||j|||gzf}||MdSdSNrr)rrranger_test_recursionrr)rridirs     rrPz_TestProcess._test_recursionRs

2r77Q;;1XX

KK.eRV_ 			
;

rc|d\}}||gtjtg}|r;|||;gdgddgddgdgddgddgg}|||dS)NFrrr)	rrPrr
rJrappendrrh)rmrrresultexpecteds     rtest_recursionz_TestProcess.test_recursion]syyy..uUB'''
5jjll	(MM%**,,'''jjll	(
cAAcAA	
*****rc0|ddS)Ng$@r.revents  r_test_sentinelz_TestProcess._test_sentinelqs

4rc|jdkr-|d|j|}||j|f}|t5|jdddn#1swxYwY|	|
|j|j}||t|t|d|||t|ddS)Nrrrr1rr)rrrrrr[rirBsentinelr
addCleanuprrrErr4setr)rmrZrr]s    r
test_sentinelz_TestProcess.test_sentinelusg9	!!MM7>>tyIIJJJ

LL 35(LCC


z
*
*		
JJ																			:h,,,3???@@@
			!<<<=====sBBBrNcZ||tj|dSr)rrvexit)rrcrs   r_test_closez_TestProcess._test_closes%=
EEGGGrcb|jdkr-|d|j|}||jd|i}d|_|||	d|
t5|dddn#1swxYwY|
d|||	d||jd||
t5|	dddn#1swxYwY|
t5|dddn#1swxYwY|
t5|dddn#1swxYwY|t#j|}~t'j||dt-|dS)Nrrr)rrOTFr)rrrrrrdrrrhrrirBrrrrrweakrefrefgccollectassertIsr!)rmrrwrs    r
test_closez_TestProcess.test_closes9	!!MM7>>tyIIJJJJJLLLL 0#qLBB				t,,,


z
*
*		
GGIII																
d	u---Q'''				


z
*
*		
JJLLL															


z
*
*		
FFHHH															


z
*
*		
KKMMM																			
[^^




bbddD!!!AsHC))C-0C-F//F36F3G55G9<G9H;;H?H?walltimecLjdkr-djtj}|dkrdnd}fdt|D}|D]}||D]}t||D]}|j	dfdt|D}|D]}|tjd	|D]}||D]}t|tjd
kr^tjg}t"jdkr |tj|D]}|j	|dSdS)NrrrKrr%cHg|]}jdS)){Gz?r)rr+.0rRrms  r
<listcomp>z4_TestProcess.test_many_processes.<locals>.<listcomp>s<$$$T%5GDD$$$rrcFg|]}jS)r)rr(rqs  rrsz4_TestProcess.test_many_processes.<locals>.<listcomp>s:$$$T%566$$$rMbP?r?darwin)rrrrrMrOrr$rhrrr
rr?r)r4r:rvrwrTrArj)rmsmNprocsr	exitcodess`     rtest_many_processesz _TestProcess.test_many_processess9	!!MM7>>tyIIJJJ

-
/
/wAAC$$$$(($$$		A
GGIIII		AOOOO	,	,AQZ++++$$$$(($$$		A
GGIIII
5		A
KKMMMM		AOOOO
7d?? .)I|x''  &.111
5
5

aj)4444?
5
5rct}tj|}|}||||f}~||tj|	|d|
|dt|dS)Nrr)
rrfrgrrrrrhrirjrhrr!)rmrrkrrs     rtest_lose_target_refz!_TestProcess.test_lose_target_refsOO
[^^JJLLLLAL//
					



bbddD!!!!$$$Arcz|tj|dSr)rrfd_countr/)rmevtrs   r_test_child_fd_inflationz%_TestProcess._test_child_fd_inflations.	i ""###




rcRjdkr-djtj}|dkr(d|d}fdt|D}|D]}|	fdt|D}	tt|d||D]}|tdS#|D]}|twxYw)NrrrdrcLg|] }jf!Sr)rr)rrrRrrrms  rrsz8_TestProcess.test_child_fd_inflation.<locals>.<listcomp>s@$$$T%B#qRR$$$rc8g|]}SrWr)rrrRrs  rrsz8_TestProcess.test_child_fd_inflation.<locals>.<listcomp>s!333Q333rr)rrrrrMrrrOrrhrr_rr!)rmrwrxryr	fd_countsrrs`     @@rtest_child_fd_inflationz$_TestProcess.test_child_fd_inflations9	!!MM7>>tyIIJJJ

-
/
/
<<
MM7>>rBBCCC
jjllJJLL$$$$$$(($$$		A
GGIIII	3333%((333ISY00!Y???
GGIII

NNNNN
GGIII

NNNNs
AE((>F&cfd}fd}tj|tj|ddS)NcXtjddS)N?rr
r_rsrfunc1z2_TestProcess._test_wait_for_threads.<locals>.func1s!JsOOOGGIIIIIrcXtjddS)N)rr
clearrsrfunc2z2_TestProcess._test_wait_for_threads.<locals>.func2s!JrNNNIIKKKKKrrTr)rThreadr)rmrrrs `  r_test_wait_for_threadsz#_TestProcess._test_wait_for_threadss											&&&,,...d33399;;;;;rcv|jdkr-|d|j|}||j|f}||||	dS)Nrrr)
rrrrrrrrris_set)rmrprocs   rtest_wait_for_threadsz"_TestProcess.test_wait_for_threads
s9	!!MM7>>tyIIJJJjjll||4#>cV|LL

		

%%%%%rc|D]K\}}|dkr(tj}|nd}t	t
|dL|dS)Nr)itemsioStringIOrsetattrrvr_)rmrbreak_std_streamsstream_nameactionstreams      r_test_error_on_stdio_flushz'_TestProcess._test_error_on_stdio_flushst#4#:#:#<#<	,	,K  Cd++++					rc	ltjdg}|ddD]}|D]}tt|}tt||	|}||j|f}|	|
|||
|jdtt||#tt||wxYwdS)Nrstdoutstderrr)rrrgetattrrvrrrrrrrrrhr)rmstreamsrr
old_streamrrs       rtest_error_on_stdio_flush_1z(_TestProcess.test_error_on_stdio_flush_1%s#;==$'
/
	:
	:K!
:
:$S+66
[&111	:**,,C<<t/N.1V(55DJJLLLIIKKKOOCJJLL111$$T]A666Cj9999GCj9999
:
	:
	:s
%BDD/c	dD]}dD]}tt|}	|}||j|||if}|||||	|j
dtt||#tt||wxYwdS)Nr)rremoverr)rrvrrrrrrrrhrr)rmrrrrrs      rtest_error_on_stdio_flush_2z(_TestProcess.test_error_on_stdio_flush_28s0	:	:K-
:
:$S+66
	:**,,C<<t/N.1K3H-I(KKDJJLLLIIKKKOOCJJLL111$$T]A666Cj9999GCj9999
:	:	:sBCC,r1cVtj||dSrr)rmrr*s   r_sleep_and_set_eventz!_TestProcess._sleep_and_set_eventIs#
5					rc|jdkr-|d|jtj}|dkr(|d|ddlm}|d}|}|	|j
||f}||j}tj||tj|dz|}|	|j
|f}	|	|	||||	jd|||||jd	dS)
Nrr
forkserverr)_forkserverrrg@)r)rrrrrMmultiprocessing.forkserverrensure_runningrrrr_forkserver_pidr?r@rr
rrrrhrrj)
rmsignumrwrr*rrrevt2rs
          rcheck_forkserver_deathz#_TestProcess.check_forkserver_deathNs9	!!MM7>>tyIIJJJ

-
/
/

MM7>>rBBCCC::::::""$$$jjll||4#<C<|PP

)
V
53;zz||D$=TGLL







&&&+++		

%%%

dmX.....rcD|tjdSr)rr4SIGINTrs rtest_forkserver_sigintz#_TestProcess.test_forkserver_sigintts##FM22222rchtjdkr!|tjdSdSr>)r?r)rr4rArs rtest_forkserver_sigkillz$_TestProcess.test_forkserver_sigkillxs0
7d??''77777?r)rN)r1)3rrrsrtrrrrrequires_resourcerclassmethodrrrrrrrr	rrC
skipUnlessr_HAVE_THREAD_NATIVE_IDr!rr(r+r8r<rBrGrLrPrWr[r`rdrlr{r}rrrrrrrrrrrrWrrrr/s,M111
,
,
,Wu%%&%([
'
'
'[
C
C
CBB[B===2[
LL[L&&&PX9;LMMVVNMV $$[$[[111f444888###444[+++([>>> [
@Wz**!5!5+*!5F[>
<
<[
<
&
&
&@B			[	:::&:::"[$/$/$/L33388888rrc&eZdZdZdZdZdZdS)_UpperCaserctj|tj\|_|_dSr)rrr}r
child_connparent_connrs rr}z_UpperCaser.__init__s7((...,;,@,B,B))))rc|jt|jjdD].}|j|/|jdSr)rriterrrrupperrmrs  rrunz_UpperCaser.runsp   do*D11	,	,AO  ++++rch|j||jSr)rrrrs  rsubmitz_UpperCaser.submits.a   $$&&&rc|jd|j|jdSr)rrrrrs rstopz_UpperCaser.stopsHd###   rN)rrrsrtr}rrrrWrrrrsSCCC   '''
     rrcPeZdZdZdZdZedZedZdZ	dS)_TestSubclassingProcessrcLt}d|_|||dd||dd||dS)NTrHELLOworldWORLD)rrrrhrrr)rm
uppercasers  rtest_subclassingz(_TestSubclassingProcess.test_subclassings ]]
 
**733W===**733W===rcX|jdkr-|d|jtj}|tj|||j|f}|	|
t|d5}|}|
d||
d||
d|ddddS#1swxYwYdS)	Nrrrutf-8encodingZeroDivisionErrorztest_multiprocessing.pyz1/0 # MARKER)rrrrTESTFNr^unlinkr_test_stderr_flushrropenreadrj)rmtestfnrfrns     rtest_stderr_flushz)_TestSubclassingProcess.test_stderr_flushsD9	!!MM7>>tyIIJJJ!	(&111||4#:&|KK

		
&7
+
+
+	/q&&((CMM-s333MM3S999MM.#...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s;ADD#&D#ctj|tjtjztjz}t|dddt
_ddzdS)NwrFrclosefdrr)r?rO_WRONLYO_CREATO_EXCLrvr)rrfds   rrz*_TestSubclassingProcess._test_stderr_flushsH
WVR[2:5	A
B
B"cGUCCC
	!rctj|tjtjztjz}t|dddt
_tj|dS)NrrFr)r?rrrrrvrrb)rrQrrs    r_test_sys_exitz&_TestSubclassingProcess._test_sys_exitsQ
WVR[2:5	A
B
B"cGUCCC
rc|jdkr-|d|jtj}|tj|gddfD]}||j||f}d|_	|
t|||j
dt|d	5}|}dddn#1swxYwY||t#|t%j|gd
}|D]\}}||5|t(j|}d|_	|
t|||j
|dddn#1swxYwYdS)Nrrrrzignore thisrTrrr)))Tr)Fr))r)rr)rWrrN)rrrrrr^rrrrrr$rhrrrrstriprkr?rrvrb)	rmrrQrrcontentcasesrNrVs	         r
test_sys_exitz%_TestSubclassingProcess.test_sys_exitsW9	!!MM7>>tyIIJJJ!	(&111
II
		FD$7vv>NOOAAH
GGIIIOOOQZ+++fw///
#1&&((
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#W^^--s6{{;;;If$	7	7ND(4((
7
7LLtL<<			Q  X666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7	7	7s%!DD		D	8A'G++G/	2G/	N)
rrrsrtrrrrrrrrWrrrrs|"M///"[[
&7&7&7&7&7rrczt|dr|S|dkS)Nemptyr)r3rqsize)rs rqueue_emptyrs4q'wwyywwyyA~rczt|dr|S||kS)Nfull)r3rr)rmaxsizes  r
queue_fullrs4q&$vvxxwwyyG##rceZdZedZdZedZdZedZdZ	dZ
edZd	Zd
Z
dZdZd
ZdZdS)
_TestQueuec|tdD]}||dS)N)r/rOrr_)rr child_can_startparent_can_continuerRs     r	_test_putz_TestQueue._test_putsPq		AIIKKKK!!!!!rcd}||}|}|}||j|||f}d|_||t|d|t||d|	d|	dd|	ddd|	d	d|	d
dd|
dtjt|t|d|t||dt|j	}t|j
}|t j|dd||jd|t j|ddd||jd|t j|d||jd|t j|ddt(||jt(|t j|ddt*||jd|t j|ddt,
||jt,|||t|d|t||d|t5|dS)NrrrTFrrrr^rrr)rrrr	rrrhrrr
put_nowaitrr
rJryripyqueueFullrr|TIMEOUT1TIMEOUT2TIMEOUT3r_r/rr!)rmMAXSIZEr rrrrr
s        rtest_putz_TestQueue.test_puts\

7
++**,,"jjll||>*=>

U++T222E733U;;;
		!
		!T
		!T4   
		!U
		!UD!!!
	
5U++U333E733T:::EI&&"5#344
',Q666$$S[!444',Qt<<<$$S[!444',
A666$$Z%7;;;',Qh???$$S[(;;;',Qx@@@$$S[!444',QhGGG$$S[(;;;  """U++T222E733U;;;		Erc||d|d|d|d|dS)Nrrr^r)r/rr_rr rrs    r	_test_getz_TestQueue._test_getAsh
		!
		!
		!
		!!!!!!rc.|}|}|}||j|||f}d|_||t|d||	tjt|t|d||
ddd||
dd||
dd||d	|t|dt|j
}t|j}|t"j|d||jd
|t"j|dd||jd
|t"j|||jd
|t"j|dt*||jt*|t"j|dt,||jd
|t"j|t.||jt.|t3|dS)NrTFrrrrr^rr)rrrrrrrhrr_r/rr
rJr
get_nowaitryrirEmptyrr|rrrrr!)rmr rrrrrs       rtest_getz_TestQueue.test_getKs

**,,"jjll||>*=>

U++T222  """
5U++U333	
4..2224!,,,1--q111))++Q///U++T222EI&&"5#344
'-e444$$S[!444'-eT:::$$S[!444'-444$$Z%7;;;'-dH===$$S[(;;;'-eX>>>$$S[!444'-h???$$S[(;;;		ErcVtddD]}||dS)Nr2r)rOr)rr rRs   r
_test_forkz_TestQueue._test_forks4r2		AIIaLLLL		rc$|}tdD]}||tjt
||j|f}d|_|	tdD]*}|
||+|tj|jd|t!|dS)Nr2rTrF)rrOrrr
rJrrrrrhrrirrrr!)rmr rRrs    r	test_forkz_TestQueue.test_forks

r		AIIaLLLL	
5
LLuhL??				r	-	-AUYY[[!,,,,'-E:::	Erc|}	||dn%#t$r|dYnwxYw|d||d|d||d|||d|||dt|dS)Nrzqsize method not implementedrrr)rrhrrrrrr!rmrs  r
test_qsizez_TestQueue.test_qsizes(JJLL	:QWWYY****"	:	:	:MM899999	:	aA&&&	aA&&&	A&&&	A&&&As(?A! A!ct|jdD]/}tjt|0dSr)rrrr
rJ	task_done)rrobjs   r_test_task_donez_TestQueue._test_task_donesFt$$		CJu
KKMMMM		rcfdtdD}|D]}d|_|tdD]}||D]}d|D]}|t
dS)NcJg|]}jf Sr)rr&)rrrRr rms  rrsz-_TestQueue.test_task_done.<locals>.<listcomp>s>&&&<<t';5(<KK&&&rr^Tr2)
JoinableQueuerOrrrrr!)rmworkersrrRr s`   @rtest_task_donez_TestQueue.test_task_dones""$$&&&&&!!HH&&&		AAH
GGIIIIr		AIIaLLLL

		AIIdOOOO		A
FFHHHHErctj5d}t|dzdd5}|ddddn#1swxYwYt	jt
j5	t|n*#tj
$r|dYnwxYwdddn#1swxYwYddddS#1swxYwYdS)Nimported_by_an_imported_modulez.pyrrrzif 1:
                    import multiprocessing

                    q = multiprocessing.Queue()
                    q.put('knock knock')
                    q.get(timeout=3)
                    q.close()
                    del q
                z?Probable regression on import lock contention; see Issue #22853)rtemp_cwdrwriter
DirsOnSysPathr?getcwd
__import__rrrf)rmmodule_namers   rtest_no_import_lock_contentionz)_TestQueue.test_no_import_lock_contentions


!
!	3	3:KkE)3AAA	
Q	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
,RY[[99
3
33{++++}333II2333333
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s|CACA	CA	(C>CBC$B74C6B77C:CC
	
C
C
	CC"%C"ctj}tj}|t
j|jddtj|z
}||dt|dS)NTg?r)
rrrrrirrrassertGreaterEqualr!)rmrrdeltas    rtest_timeoutz_TestQueue.test_timeoutst!##  '-e<<<  5(	
u---Arc\|jdkr-|d|jGddt}tj5|}|||d|	|
t
jt|dddn#1swxYwYtj5|d}|||d	|
|dn#t$rYnwxYw|	|
t
j|	|t|ddddS#1swxYwYdS)	NrrceZdZdZdS)F_TestQueue.test_queue_feeder_donot_stop_onexc.<locals>.NotSerializablectr)rArs rrzQ_TestQueue.test_queue_feeder_donot_stop_onexc.<locals>.NotSerializable.__reduce__s$$rNrrrsrtrrWrrNotSerializabler;s#
%
%
%
%
%rr>Trrr)rrrobjecttestrcaptured_stderrrrrrrr!rhrrr)rmr>rs   r"test_queue_feeder_donot_stop_onexcz-_TestQueue.test_queue_feeder_donot_stop_onexcsu9##MM7>>tyIIJJJ	%	%	%	%	%f	%	%	%\
)
)
+
+		

A
EE//##$$$
EE$KKKOOAEE'*?E@@AAANNN															\
)
)
+
+		

1
%%A
EE//##$$$
EE$KKK
  A....&




OOAEE'*?E@@AAAOOAGGII&&&NNN																		sK*B	C??DD(A	H!2(FH!
F(%H!'F((A,H!!H%(H%c|jdkr-|d|jGddtGfddtjj}}tj	5|t	j
}|||d||
tj	dddn#1swxYwY||j||jdS)
NrrceZdZ	dZdZdS)K_TestQueue.test_queue_feeder_on_queue_feeder_error.<locals>.NotSerializablec"d|_d|_dSNF)reduce_was_called on_queue_feeder_error_was_calledrs rr}zT_TestQueue.test_queue_feeder_on_queue_feeder_error.<locals>.NotSerializable.__init__s).&8=555rcd|_tNT)rHrArs rrzV_TestQueue.test_queue_feeder_on_queue_feeder_error.<locals>.NotSerializable.__reduce__s)-&$$rN)rrrsrtr}rrWrrr>rEs5,
>
>
>
%
%
%
%
%rr>c,eZdZ	efdZdS)E_TestQueue.test_queue_feeder_on_queue_feeder_error.<locals>.SafeQueuecht|trt|rd|_dSdSdSrK)rrArI)rr%r>s  r_on_queue_feeder_errorz\_TestQueue.test_queue_feeder_on_queue_feeder_error.<locals>.SafeQueue._on_queue_feeder_error"sOq.11@"388@;?C888@@@@rN)rrrsrtstaticmethodrO)r>sr	SafeQueuerM sBC

@
@
@
@\
@
@
@rrQ)rpTr)rrrr?rrrr@rrAget_contextrrrrrHrI)rmrQnot_serializable_objrr>s    @r'test_queue_feeder_on_queue_feeder_errorz2_TestQueue.test_queue_feeder_on_queue_feeder_errors9##MM7>>tyIIJJJ	%	%	%	%	%f	%	%	%	@	@	@	@	@	@	@.4	@	@	@ /00
\
)
)
+
+	B	B	o9;;<<<A
EE&'''
EE$KKKOOAEE'*?E@@AAA
	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	
,>???,MNNNNNsA;DD"DctjtjfD]}||t
d5|ddddn#1swxYwY|t
d5|dddn#1swxYwYdS)Nz	is closedfoo)rrr)rassertRaisesRegexrBrrr!s  r$test_closed_queue_put_get_exceptionsz/_TestQueue.test_closed_queue_put_get_exceptions6s2 &((/*G*I*II		A
GGIII''
K@@

e














''
K@@
















			s$A::A>	A>	 CC	C	N)rrrsrtrr	rrrrrr"r&r+r4r8rBrTrXrWrrrrs""["999v""["333j[8 [
,333*			@$O$O$OLrrc eZdZdZdZdZdS)	_TestLockcx|}||d||dd||d|t
tjf|jdSNTF)LockrhacquirereleaserirBrThreadErrorrmlocks  r	test_lockz_TestLock.test_lockCsyy{{...e,,e444...:y'<=t|LLLLLrc\|}||d||d||d||d||d||d|t
tf|jdSrK)RLockrhr^r_rirr0ras  r
test_rlockz_TestLock.test_rlockJszz||..................><8$,GGGGGrcb|5	ddddS#1swxYwYdSrr]rs rtest_lock_contextz_TestLock.test_lock_contextTsw
YY[[																				s$((N)rrrsrtrcrfrirWrrrZrZAsGMMMHHHrrZc&eZdZdZdZdZdZdS)_TestSemaphorec|dt|||d|dt|||d|dt|||dd|dt|||d|dt|||d|dt|dS)NrTrrF)rrrhr^r_rmsems  r_test_semaphorez_TestSemaphore._test_semaphore[s2''9c:::---''9c:::---''9c:::U++U333''9c:::---''9c:::---''9c:::::rcj|d}||||d|dt
|||d|dt
|dS)Nrrr^)	Semaphorerorhr_rrrms  rtest_semaphorez_TestSemaphore.test_semaphorehsnnQS!!!---''9c:::---''9c:::::rcZ|d}||dSNr)BoundedSemaphorerorms  rtest_bounded_semaphorez%_TestSemaphore.test_bounded_semaphoreps/##A&&S!!!!!rcF|jdkr-|d|j|d}t	|j}||dd||jd||ddd||jd||dtd||jd||dtd||jt||td||jtdS)NrrrFr1Tr)rrrrqryr^rhrr|rrr)rmrnr^s   rr8z_TestSemaphore.test_timeoutxsw9##MM7>>tyIIJJJnnQ,,///$$W_c:::--u555$$W_c:::115999$$W_a888x00%888$$W_h???222E:::$$W_h?????rN)rrrsrtrorrrvr8rWrrrkrkYsU;;;;;;"""@@@@@rrkceZdZeddZdZdZdZdZdZ	dZ
ed	Zej
ed
dZedZej
ed
d
ZedZdZdS)_TestConditionNc||||||dSr)r^r_r/)rcondsleepingwokenr3s     rrz_TestCondition.fsQ		'


rctdD]>}	||krn,n#t$rYnwxYwtjt?tjt|||dSNr2)rOrrr
rJr)rmr{rrRs    rassertReachesEventuallyz&_TestCondition.assertReachesEventuallysr		A
466U??E#&



Ju
5''t44444s$
22c0|jdkr	|j|jz
}||d||jddS#t$rYdSwxYwdS)Nrr)r_sleeping_countr_woken_countrh_wait_semaphorer)rmr{sleeperss   rcheck_invariantz_TestCondition.check_invariants9##
 0::<< -7799:  1---  !5!?!?!A!A1EEEEE&




$#sA6B
BBc|}|d}|d}||j|||f}d|_|||jtj	|j|||f}d|_|||j|
|
tjt|dt||
||tjt|dt||
||tjt|dt||||dS)NrrTrr)	Conditionrqrrrrr^rrrr^rr
rJrrnotifyr_r)rmr{r|r}rs     rtest_notifyz_TestCondition.test_notifys~~>>!$$q!!LLdHe-DLEE				DF$%1HIII						
5''9e<<<	



	
5''9e<<<	



	
5''9e<<<	
T"""	rc|}|d}|dtdD]}||j||t
f}d|_|||j	tj|j||t
f}d|_|||j	tdD]}|tdD]}|
dt||tdD]}||j||f}d|_|||j	tj|j||f}d|_|||j	tdD]}|t!jt$|
dt||||fdd||dS)NrrrTrc"tSrrr}sr<lambda>z0_TestCondition.test_notify_all.<locals>.<lambda>Yu-=-=r)rrqrOrrrrrr^rrrr^rrrrr
rJ
notify_allr_rrmr{r|rRrrr}s      @rtest_notify_allz_TestCondition.test_notify_alls~~>>!$$q!!q	$	$ADF#'5("CEEAAH
GGIIIOOAF### '+Xuh&GIIIAAH
GGIIIOOAF####q		Aq		AMMOOOO''9e<<<	
T"""q		$		$ADF$%1HIIAAH
GGIIIOOAF### dHe5LMMMAAH
GGIIIOOAF####q		A	
5''9e<<<	
	
$$%=%=%=%=qAAA	
T"""""rc|}|d}|dtdD]}||j||f}d|_|||jtj
|j||f}d|_|||jtdD]}|tj
t|dt ||d||fdd||d	||fd
d||d||dt ||dS)NrrrTrr)nc"tSrrrsrrz._TestCondition.test_notify_n.<locals>.<lambda>9rrr^c"tSrrrsrrz._TestCondition.test_notify_n.<locals>.<lambda>@rr)rrqrOrrrrr^rrrr^rr
rJrrrr_rrrs      @r
test_notify_nz_TestCondition.test_notify_ns6~~>>!$$q!!q		$		$ADF$%1HIIAAH
GGIIIOOAF### dHe5LMMMAAH
GGIIIOOAF####q		A	
5''9e<<<	
a	
$$%=%=%=%=qAAA	
a$$%=%=%=%=qAAA	
a''9e<<<	
T"""""rc2|}t|j}||t}|||d||jtdSrG)	rryr/r^rr_rhrr|)rmr{r/rs    rr8z_TestCondition.test_timeoutLs{~~TY''d8nne$$$$$T\8<<<<<rc|5d_||fd}|rjdkrtjdddddS#1swxYwYdS)NrcjdkSr]rstatesrrz0_TestCondition._test_waitfor_f.<locals>.<lambda>Z
EKNrr^r)rrwait_forrvrb)rr{rrUs  ` r_test_waitfor_fz_TestCondition._test_waitfor_fUs
		EKKKMMM]]#:#:#:#:;;F
U[A--																		sAA&&A*-A*zneeds sharedctypesc|}|dd||j|f}d|_||5|fd}|||j	ddddn#1swxYwYtdD]T}tjd|5xj	d	z
c_	|
dddn#1swxYwYUt|||jddS)
NrRr>rTcjdkSNrrrsrrz-_TestCondition.test_waitfor.<locals>.<lambda>irrrr^rpr)rrrrrrrrrhrrOrr
rr$r)rmr{rrUrRrs     @rtest_waitforz_TestCondition.test_waitfor^s~~

3##LL 4D%=LII				
	-	-]]#:#:#:#:;;FOOF###U[!,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
q		AJt

q 

















	QQ'''''s%'A	B<<CC.%DD#	&D#	c||5d}tj}|fd|}tj|z
}|s|tz
|krd|_ddddS#1swxYwYdS)NrcjdkSr]rrsrrz8_TestCondition._test_waitfor_timeout_f.<locals>.<lambda>|rrrT)r_rrr	CLOCK_RESr)rr{rsuccessrnrVdtrUs  `     r_test_waitfor_timeout_fz&_TestCondition._test_waitfor_timeout_fvs



	%	%H!!B]]#:#:#:#:H]MMF!!B&B
%x)3:: $

	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%sABB	Bc|}|dd}|dd}|d}||j||||f}d|_|||tj
tdD]T}tj
d|5|xjd	z
c_|dddn#1swxYwYUt!|||jdS)
NrRrFrTrrrpr)rrrqrrrrrr^rrrOrr
rrr$)rmr{rrrnrrRs       rtest_waitfor_timeoutz#_TestCondition.test_waitfor_timeoutsq~~

3""**S%((nnQLL <#UGS9

;
;				G,@AABBBq		AJu

q 

















	Q
&&&&&s+%DD 	#D 	c|5|dddn#1swxYwYtjd|!tj|t
jdSdSr)rrr
r?r@r4r)rrrs   r_test_wait_resultz _TestCondition._test_wait_results
		
HHJJJ															
1


?GC'''''?s$((ct|tr$tjdkrt	j}nd}|}|5||d||d|	|j
||f}|||d|!|
t|jd|ddddS#1swxYwYdS)Nr-rrr<)rProcessesMixinrvrwr?rrrr/rrrrriKeyboardInterruptr)rmrrrs    rtest_wait_resultz_TestCondition.test_wait_resultsYdN++	0G0G)++CCCNN
		QVVAYY'''QVVC[[)))D$:!SJJA
GGIIIOOAFF2JJ'''!!"3QVR@@@
FFHHH																		sC"EEEr)rrrsrtrrrrrrrr8rrCrHAS_SHAREDCTYPESrrrrrrWrrryrysK[	5	5	5			+++Z<#<#<#|0#0#0#d===[X)+?@@((A@(.%%[%X)+?@@''A@'.(([(rryc2eZdZedZdZddZdS)
_TestEventc`tjt|dSr)rr
rr_rYs  r_test_eventz_TestEvent._test_events#
8
		rc|}t|j}||d||dd||jd||td||jt|||d||d||jd||td||jd|	|
|j|f}d|_|
||d|dS)NFr1Tr)rryr/rhrrr|rr_rrrrrr)rmrZr/rs    r
test_eventz_TestEvent.test_events

UZ((	
///	
cE***$$T\3777h///$$T\8<<<
			
...&&&$$T\3777h...$$T\3777	



LL 0xL@@				&&&	rreturnNc8|}|jdkr|t|d||t|d||t|ddS|jdkr\|t|d||t|ddSdS)Nrz<Event at .* unset>z<Event at .* set>rz(<EventProxy object, typeid 'Event' at .*)rrassertRegexreprr_r)rmrZs  r	test_reprz_TestEvent.test_reprs

9##T%[[*@AAAIIKKKT%[[*>???KKMMMT%[[*@AAAAA
Y)
#
#T%[[*UVVVIIKKKT%[[*UVVVVV$
#r)rN)rrrsrtrrrrrWrrrrsW[!!!FWWWWWWrrc,eZdZdZdZdZdZdZdS)
_DummyListctjtjd}tj}|||fd|jd<dS)NrRr)rheap
BufferWrapperstructcalcsizer]__setstate__
_lengthbuf)rmwrapperrbs   rr}z_DummyList.__init__sZ!&44V_S5I5IJJ#%%7D/***rc|\|_|_|jd|_dS)NrR)_wrapper_lockcreate_memoryviewcastr)rmrs  rrz_DummyList.__setstate__s7&+#
-99;;@@EErc|j|jfSr)rrrs r__getstate__z_DummyList.__getstate__s
tz**rcp|j5|jdxxdz
cc<ddddS#1swxYwYdSNrrrr)rm_s  rrTz_DummyList.appends
Z	$	$OA!#	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$s+//c^|j5|jdcdddS#1swxYwYdSrrrs r__len__z_DummyList.__len__	sx
Z	&	&?1%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&s
"&&N)rrrsrtr}rrrTrrWrrrrsbFFF+++$$$&&&&&rrc.tjddS)Nrpr&rWrr_waitr
sJtrc6eZdZ	d	dZdZdZdZdZdZdS)
BunchFc	||_||_||_||_||_||_|s|jg}t|D]M}|
|j}d|_|
||Nd}	tj||	||_dS)NrTc8|D]}|dSr)r)rrs  rfinalizez Bunch.__init__.<locals>.finalize,s*



r)rrNr	DummyListstartedfinishedr	_can_exitr_rOrtaskrrrTrfr
_finalizer)
rm	namespacerrNrwait_before_exitrrRrrs
          rr}zBunch.__init__s	
	 **,,!++--
"**	!N   q		A!!!33AAH
GGIIINN1			"*47CCrcZtj}|j|	|j|j|j||jddS#|j||jdwxYw)N)	r?rrrTrrNrrr/rmrs  rrz
Bunch.task2sikkC   	+DFDIM  %%%N#####
M  %%%N###****sA446B*ct|j|jkr-tt|j|jk+dSdSr)rrrrrs rwait_for_startedzBunch.wait_for_started<sG$,$&((GGG$,$&((((((rct|j|jkr-tt|j|jk+dSdSr)rrrrrs rwait_for_finishedzBunch.wait_for_finished@sG$-  46))GGG$-  46))))))rc8|jdSr)rr_rs r	do_finishzBunch.do_finishDsrc.|dSr)rrs rrzBunch.closeGsrNr)	rrrsrtr}rrrrrrWrrrrs|DDDD8+++rrceZdZdZdZdS)
AppendTruec||_dSr)r%)rmr%s  rr}zAppendTrue.__init__Ls
rc:|jddSrK)r%rTrs rrzAppendTrue.__call__NsrNrrWrrrrKs2rrc:eZdZ	dZdZdZdZdZdZe	dZ
dd	Zd
Ze	dZ
dZe	d
ZdZe	dZdZe	dZdZe	dZdZe	dZdZe	dZdZdZe	dZdZdS)_TestBarrierrg>@cR||j|j|_dS)Nr)BarrierrxdefaultTimeoutbarrierrs rsetUpz_TestBarrier.setUpYs"||DFD4G|HHrcF|jd|_dSr)rabortrs rtearDownz_TestBarrier.tearDown\s!rc|jdkrgS|jdkr|jStS)Nrr)rrrrrs rrz_TestBarrier.DummyList`s?9	!!I
Y)
#
#<$$&&&<<rct||||jdz
}	||||dS#|wxYwr)rrxrr)rmrrNrs    rrun_threadsz_TestBarrier.run_threadshs`$4**	
AtHH
!!!
GGIIIIIAGGIIIIsAA!c|j}t|D]`}|dd||dd|adS#t$rYdSwxYw)NrTr)partiesrOrTr/r)rrresultsrmrRs      r	multipassz_TestBarrier.multipasspsOq		AAJd###LLNNNAJd###LLNNNN		"			DD	s:
BBrc	||g}||j|j||fdSr)rrrr)rmpassesrs   rtest_barrierz_TestBarrier.test_barriersN	>>##T^^%5%56$,)HIIIIIrc.	|dSr)r	rs rtest_barrier_10z_TestBarrier.test_barrier_10s	  $$$rcX|}||dSr)r/r)rrr rs    r_test_wait_return_fz _TestBarrier._test_wait_return_fs"llnn
		#rc&	|||j|jffdt	|jD}||ddtdS)Nc8g|]}SrWr)rrrRr s  rrsz1_TestBarrier.test_wait_return.<locals>.<listcomp>s!6661599;;666rrr)	rrr
rrOrxrhcountr!)rmrr s  @rtest_wait_returnz_TestBarrier.test_wait_returns	

1DL%3HIII6666df

666q))1---Ercb|t|dkrtdSr)r/rr0)rrrs   r_test_action_fz_TestBarrier._test_action_fs.w<<1rc	|}||jt|}||j||f|t|ddS)N)rr)rrrxrrrrhr)rmrrs   rtest_actionz_TestBarrier.test_actionsw	.."",,tvj.A.A,BB,w.@AAAWq)))))rcB	|}||jdzkrt||ddS#tj$r|dYdSt$r|YdSwxYwNrT)r/rxr0rTrBrokenBarrierErrorr)rrresults1results2rRs     r
_test_abort_fz_TestBarrier._test_abort_fs		ACE1H}}""LLNNNOOD!!!!!+	"	"	"OOD!!!!!!			MMOOOOOO	sAA$B=BBcx	|}|}||j|j||f|t|d|t||jdz
||jjdSr)	rrrrrhrrxrbroken)rmrrs   r
test_abortz_TestBarrier.test_aborts	>>##>>##+,(;	=	=	=X***Xq111+,,,,,rc|}||jdzkrO|j|jdz
kr'tjd|j|jdz
k'|nU	||dn*#tj$r|dYnwxYw||ddS)NrrruT)	r/rx	n_waitingrr
resetrTrr)rrrrresults3rRs      r
_test_reset_fz_TestBarrier._test_reset_fsLLNNq==#ceAg--
5!!!#ceAg--MMOOOO
&%%%%/
&
&
&%%%%%
&	s3)B$CCc	|}|}|}||j|j|||f|t|d|t||jdz
|t||jdSr)rrr#rrhrrx)rmrrr"s    r
test_resetz_TestBarrier.test_resets	>>##>>##>>##+,(HE	G	G	GX***Xq111X/////rc"	|}||jdzkrt||dnI#tj$r|dYn#t$r|YnwxYw||jdzkr||||ddSr)r/rxr0rTrrrr!)rrbarrier2rrr"rRs       r_test_abort_and_reset_fz$_TestBarrier._test_abort_and_reset_fs		ACE1H}}""LLNNNOOD!!!!+	"	"	"OOD!!!!!			MMOOOOO	
==??ceQh&&MMOOO

sAA$B;BBc	|}|}|}||j}||j|j||||f|t|d|t||jdz
|t||jdSr)rrrxrr(rrhr)rmrrr"r's     rtest_abort_and_resetz!_TestBarrier.test_abort_and_resets	>>##>>##>>##<<''5,(HhO	Q	Q	QX***Xq111X/////rc|}||jdzkrtjd	|ddS#tj$r|dYdSwxYw)Nr?rT)r/rxrr
rrrTrrrrRs    r_test_timeout_fz_TestBarrier._test_timeout_f	sLLNNq==JsOOO	!LL+	!	!	!NN4      	!sA$A76A7c	|}||j|j|f|t||jjdSr)rrr.rrhrr)rmrs  rr8z_TestBarrier.test_timeouts_	..""-g/FGGGWt|';<<<<<rc||j}||jdzkrtjd	|dS#t
j$r|dYdSwxYw)Nrr,T)r/rrxrr
rrrTr-s    r_test_default_timeout_fz$_TestBarrier._test_default_timeout_fsLL+,,q==JsOOO	!LLNNNNN+	!	!	!NN4      	!sA$A<;A<c	||jd}|}||j||f|t
||jdS)Nrr)rrxrrr1rhrr)rmrrs   rtest_default_timeoutz!_TestBarrier.test_default_timeout'sq	,,tvs,33..""57IJJJWw77777rc|d}||dSr)rr/)rmrs  rtest_single_threadz_TestBarrier.test_single_thread0s/LLOO		rct|D]E}||5||dddn#1swxYwYFdSr)rOr/r)rrrconnrbrRs      r_test_thousand_fz_TestBarrier._test_thousand_f5sv		ALLNNN

		!














		sA

A	A	cH|jdkr-|d|jd}|}|d\}}t|jD]U}||j|j	|||f}|
||jVt|D]A}t|jD]*}|
||+BdS)NrrFr)rrrr]rrOrxrr8rrr^rrhr)rmrrbr7rjrrRs        r
test_thousandz_TestBarrier.test_thousand<s9	!!MM7>>tyIIJJJyy{{99U++jtv	$	$AD$9!%vz4 HJJA
GGIIIOOAF####v	1	1A46]]
1
1  a0000
1	1	1rNr)rrrsrtrxrrrrrrrr	rr
rrrrrr#r%r(r*r.r8r1r3r5r8r<rWrrrrRs	
ANIII   ""[" JJJJ%%%[[
***

[

-
-
-["000[*
0
0
0!![!===!![!888
[11111rrc	zeZdZdZdddddededfgZd	Zed
ZddZ	d
Z
dZdS)
_TestValuer)rRii^)dg
@g)hi)rrxycBts|ddSdSNz%requires multiprocessing.sharedctypesrrrs rrz_TestValue.setUp\0	CMMABBBBB	C	CrcVt||jD]\}}|d|_dSrt)zipcodes_valuesr)rvaluessvcvs    rrz_TestValue._test`s9&#"233		FB!uBHH		rFc|rfdjD}nfdjD}t|jD]&\}}|j|d'j|f}d|_||t|jD]&\}}|j|d'dS)NcDg|]\}}}||SrW)RawValuerrcoderrrms    rrsz)_TestValue.test_value.<locals>.<listcomp>hs=???($qmmD%00???rcDg|]\}}}||SrW)rrSs    rrsz)_TestValue.test_value.<locals>.<listcomp>ks=???($qjju--???rrrTr)	rLrKrhrrrrrr)rmrawrMrNrOrs`     r
test_valuez_TestValue.test_valuefs'	?????,0,=???FF????,0,=???F&$"344	.	.FBRXr!u----||4:VI|>>

		&$"344	.	.FBRXr!u----	.	.rc2|ddSNT)rV)rWrs r
test_rawvaluez_TestValue.test_rawvalueysD!!!!!rc|dd}|}|}|ddd}|}|}|}|dd|}|}	|}
|||	|ddd}|t
|d|t
|d|t|jddd|	dd}|t
|d|t
|ddS)NrRrrbFget_lockget_objnavalue)
rr]r^r]rhrr3rirArR)
rmval1lock1obj1val2lock2obj2rbval3lock3obj3arr4arr5s
             rtest_getobj_getlockz_TestValue.test_getobj_getlock|s}zz#q!!

||~~zz#qtz,,

||~~yy{{zz#qtz,,

||~~u%%%zz#quz--z22333y11222.$*c19MMM}}S!$$z22333y1122222rNr)rrrsrtrrrLrrrrWrZrkrWrrr>r>Ps"M		eeCjj%%**%
LCCC[
....&"""33333rr>c
eZdZdZedZejedudd
dZ	ejeduddZ
ejeduddZejedudd	ZdS)
_TestArrayrcxtdt|D]}||xx||dz
z
cc<dSr)rOr)rseqrRs   rrz_TestArray.fsKq#c((##		AFFFc!A#hFFFF		rNzrequires _ctypesFcDgd}|r|d|}n|d|}|t|t|||d|d|t	|ddt	|ddtjdgdx|dd<|dd<|t	|dd|||||j|f	}d
|_|	|
|t	|dd|dS)N)
iirii5i$iii?rRrrr)rrrr^r^rrT)RawArrayArrayrhrrarrayrrrrr)rmrVroarrrs     r
test_arrayz_TestArray.test_arraysp@@@	'--S))CC**S#&&CS3s88,,,QQ(((c!A#hc!A#h888#k#|||<<<AaC3qs8c!!!fs+++sLLcVL44					c!!!fs+++++rc	d}tdD]}|d|}|t|||t	|dg|ztd|dd<|t	|t	td~dS)Nr2rrRr)rOrtrhrr)rmsizerrvs    rtest_array_from_sizez_TestArray.test_array_from_sizes
q		A**S$''CSXXt,,,T#YYd
3332YYCFT#YYU2YY888
		rc2|ddSrY)rwrs r
test_rawarrayz_TestArray.test_rawarraysD!!!!!rc||dttd}|}|}|dttdd}|}|}|}|dttd|}|}	|}
|||	|dtdd}|t|d|t|d|	t|jdtdd|dtd}|t|d|t|ddS)NrRr2r\Fr]r^notalock)rtrrOr]r^r]rhrr3rirArs)
rmarr1rarbarr2rdrerbarr3rgrhrirjs
             rtest_getobj_getlock_objz"_TestArray.test_getobj_getlock_objszz#tE"II//

||~~zz#tE"IITz::

||~~yy{{zz#tE"IITz::

||~~u%%%zz#uRyyuz55z22333y11222.*c599:		G	G	G}}S%)),,z22333y1122222rr)
rrrsrtrrrrCrur9rwrzr|rrWrrrmrms"M[X_Ud]$677,,,87,0X_Ud]$67787X_Ud]$677""87"X_Ud]$6773387333rrmcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)_TestContainersrc|ttd}||ddttd|}||ddg|ttd||ddttd||dd||ddgd|dz}||ddgd||ddgzgd||ddttd||g}||}|d|Dgd	gdg||g}|d
||dddgddS)
Nr2rr)rrr^)
rrrrr^rrrrr^r)rrrrr^rrrrr^rrc"g|]}|dd
SrrW)rrelements  rrsz-_TestContainers.test_list.<locals>.<listcomp>	s )))GWQQQZ)))r)
rrrrr^rrrr	rr)rrrrr^rrrrrr)rrOrhextendrT)rmrrr?rrs      r	test_listz_TestContainers.test_listsIId599oo&&111tE"II///IIKK111r"""	eAhh   111tE!HH~~...1q!!!1R4'''***	Q111===>>>aV%I%I%IJJJ111tE"II///
FIIaLL))q)))
+
+
+-K-K-KL			

IIqcNN	1aaa"I"I"IJJJJJrc|ttd}t|}|t|ttd|t|gt|}d|d<|t	|ddS)Nr2r%r)rrOrrhnext)rmrits   rtest_list_iterz_TestContainers.test_list_iter	sIId599oo&&
!WWb4b		??333b2&&&
!WW!b3'''''rcfdtdD}d|Dgdgdzd|dd<|dddgdtd	dD](}||ddgd)|d	d
t	|d	d
tddd
D]+}t	||d,~}||~dS)NcTg|]$}td%S)r)rrO)rr_irms  rrsz;_TestContainers.test_list_proxy_in_list.<locals>.<listcomp>	s+>>>rtyyq**>>>rrc"g|]}|dd
SrrW)rrinners  rrsz;_TestContainers.test_list_proxy_in_list.<locals>.<listcomp>	s 222u%(222r)rrr7rr>)rrrrr)rrOrhpoprrT)rmrrRrs`   rtest_list_proxy_in_listz'_TestContainers.test_list_proxy_in_list	suII>>>>U1XX>>>??22222YYYK!ODDD!R1aaa***---q!	1	1AQqT!!!Wiii00001Q'''QqTA&&&q!Q	+	+AS1YY****
IIKK	
AArcz|}ttdd}|D]}t|||<||td|D|t
|||t
|d|D|t
|	d|DdS)NAFc38K|]}|t|fVdSrchrrrrRs  r	<genexpr>z,_TestContainers.test_dict.<locals>.<genexpr>/	s,'E'ECFF'E'E'E'E'E'Erc,g|]}t|SrWrrs  rrsz-_TestContainers.test_dict.<locals>.<listcomp>1	s-F-F-Fc!ff-F-F-Frc0g|]}|t|fSrWrrs  rrsz-_TestContainers.test_dict.<locals>.<listcomp>2	s",J,J,JQaQ[,J,J,Jr)
dictrrOrrhrsortedkeysrMr)rmr?indicesrRs    r	test_dictz_TestContainers.test_dict*	sIIKKuR}}%%		Aq66AaDD4'E'EW'E'E'E#E#EFFF))7333

++-F-Fg-F-F-FGGG		**,J,J',J,J,JKKKKKrc|}ttdd}|D]}t|||<t	|}|t|||t|gt	|}||tt|dS)Nrr)
rrrOrrrhrrir0r)rmr?rrRrs     rtest_dict_iterz_TestContainers.test_dict_iter4	sIIKKuR}}%%		Aq66AaDD
!WWb7+++b2&&&
!WW				,b11111rc"|dd}|dd}|||}||dd||d	ddd
|d	d<||dd
||d	dd
d|d	d<||dd||d	dd~~||d
ddd|d	d<||d	dd|d
}|d	}d|d<||dd||d	dd||t|d||dd||dd|||g}d|dd<||dd||ddd~~||ddd|ddg|g}||dt||dddddS)Nrr^)ferretshamstersr2r)waterfeed)petssuppliesrrrblanketsrrrrrrmarmotsXcr>r)rrhrrrr)rmrrr?louters      rtest_dict_proxy_nestedz&_TestContainers.test_dict_proxy_nestedA	syyQy//992A9..II4(I33'*B///:w/444$%*
j!*-q111:z2A666!"*
g'*A...:w/33369-q111$&*
j!:z2B777yZ='*A...:w/333				Q###'*A...j)1---IItX&''!Yi!,,,1i!,,,1i!,,,		B8Q-((eAh---r2v.22222rc|}|||dd||dd|}||d<|dd||dddS)Nr{)rrTrrrhrrrs   rtest_nested_queuez!_TestContainers.test_nested_queueo	sIIKK		!


1S)))IIKKzz||!	!


1S)))))rct|}d|_d|_d|_||j|jfd|`|t|d|t|d|t|ddS)NBobBuilderhidden)rrzNamespace(name='Bob')r)job)	Namespacer)r_hiddenrhrkrr3)rmrs  rtest_namespacez_TestContainers.test_namespacey	sNN	!&!%*<===
EQ!89996**+++GAu---.....rN)rrrsrtrrrrrrrrrrWrrrrs MKKK>((((LLL222,3,3,3\***	/	/	/	/	/rrr1cd|tj|n||||zSr)rr
r/)rDr/rZs   rsqrr	s5}
4

4Q3Jrc||zSrrW)rDrEs  rmulr	Q3JrcNtj|tddz)NrDi)rr
rBr.s rraise_large_valuerrorr	s$Jt
S7]
#
##rc|SrrWrDs ridentityr	sHrceZdZdZdZdZdS)
CountedObjectrcV|xjdz
c_t|Sr)n_instancesr?__new__r's rrzCountedObject.__new__	s$1~~c"""rc@t|xjdzc_dSr)rrrs r__del__zCountedObject.__del__	s"T

!#rN)rrrsrtrrrrWrrrr	s7K###$$$$$rrceZdZdS)SayWhenErrorNrrrsrtrWrrrr	srrc#K|dkrtdt|D]}||krtd|VdS)Nr>zSomebody said when)rrO)totalwhenrRs   rexception_throwing_generatorr	s`rzz/000
5\\993444rc
eZdZefdZefdZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZedZdZedZdZdZdZdZdZ xZ!S)	_TestPoolc|t|d|_dSr])super
setUpClassPoolpoolr	__class__s rrz_TestPool.setUpClass	s.
88A;;rc|j|jd|_tdSr)rrrr
tearDownClassrs rrz_TestPool.tearDownClass	sI


rc|jj}||tdtd||tddditddS)N)rrrWrDrr)rapplyrhr)rmpapplys  r
test_applyz_TestPool.test_apply	siT**CFF333R#a113888<<<<<rc
|jj}||tt	tdt	ttt	td||tt	tddt	ttt	tddS)Nr2r%r	chunksize)rmaprhrrrO)rmpmaps  rtest_mapz_TestPool.test_map	sy}c4b		??33T#c4b		??:S:S5T5TUUUc4c

#3#3rBBBc#tE#JJ'7'78899	;	;	;	;	;rc
.|jj}ttt	dt	ddd}||t|ttjt|ttt	dt	ddd}||t|dttjt|dS)Nr2rr>r%rrr)rstarmaprrKrOrhrr)rmpsmaptupless   rtest_starmapz_TestPool.test_starmap	s	!c%))U1R__5566sF++i/V<<==	?	?	?c%**eBr2&6&67788sFb999i/V<<==	?	?	?	?	?rc
Ntttdtddd}||jt|ttj	t|dS)Nr%rr>)
rrKrOrhr
starmap_asyncrrrr)rmrs  rtest_starmap_asyncz_TestPool.test_starmap_async	sc%**eBr2&6&6778800f==AACCi/V<<==	?	?	?	?	?rc
:||jtt	tdt	ttt	tddSr)rhr	map_asyncrrrOrrrs rtest_map_asyncz_TestPool.test_map_async	sq,,S$uRyy//BBFFHHc#tE"II7788	:	:	:	:	:rcZ|jdkr|jng}|jt
dg|j|j|dt||dg|d|jt
dg|j|j|dt||
|dtdS)Nr1)callbackerror_callbackrrrr)rrrrrrErTr/rhrrrB)rm	call_argss  rtest_map_async_callbacksz"_TestPool.test_map_async_callbacks	s+/9	+A+ADL%%'''r		C#%.%5+4+;		=	==ATVVVC	NN+++!il+++	C#%.%5+4+;		=	==ATVVVC	NN+++ilJ77777rcZ|jdkr-|d|jGddt}|t
5|jt|gdzddddS#1swxYwYdS)NrrceZdZdZdS)*_TestPool.test_map_unplicklable.<locals>.Ac td)Nz
cannot pickler/rs rrz5_TestPool.test_map_unplicklable.<locals>.A.__reduce__	s"?333rNr=rWrrAr	s#
4
4
4
4
4rrr2)	rrrr?rir0rrr)rmrs  rtest_map_unplicklablez_TestPool.test_map_unplicklable	s9	!!MM7>>tyIIJJJ	4	4	4	4	4	4	4	4

|
,
,	)	)IMM#uRx(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s&-B  B$'B$c	|jtgdtdS#t
j$r|dYdSwxYw)Nrrrz2pool.map_async with chunksize stalled on null list)rrrrrrTimeoutErrorrfrs rtest_map_chunksizez_TestPool.test_map_chunksize	sz	LIR15599(9KKKKK+	L	L	LIIJKKKKKK	Ls;?$A'&A'cD|jdkr-|d|j|t5|jttddddddn#1swxYwY|t5|jttddddddn#1swxYwY|t5|jttddddddn#1swxYwYGdd}|t5|jt|ddddn#1swxYwY|t5|jt|dddddS#1swxYwYdS)	Nrrrr>r2rc eZdZdZdZdZdS)E_TestPool.test_map_handle_iterable_exception.<locals>.SpecialIterablec|SrrWrs r__iter__zN_TestPool.test_map_handle_iterable_exception.<locals>.SpecialIterable.__iter__
srctr)rrs r__next__zN_TestPool.test_map_handle_iterable_exception.<locals>.SpecialIterable.__next__
s""rcdSrrWrs rrzM_TestPool.test_map_handle_iterable_exception.<locals>.SpecialIterable.__len__	
sqrN)rrrsrtrrrrWrrSpecialIterabler

sA



#
#
#




rr)	rrrrirrrrr)rmrs  r"test_map_handle_iterable_exceptionz,_TestPool.test_map_handle_iterable_exception	sZ9	!!MM7>>tyIIJJJ

|
,
,	G	GIMM#;ArBBAFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G

|
,
,	G	GIMM#;ArBBAFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G

|
,
,	G	GIMM#;BBBAFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G								

|
,
,	5	5IMM#00!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5


|
,
,	5	5IMM#00!444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sZ0BBB40C00C47C40EEE*F99F=F=*HHHc|jtdtf}t	|j}||d||jtdS)Nr1)	rapply_asyncrrryrrhrr|)rmrrs   r
test_asyncz_TestPool.test_async
sfi##C!X88CG$$###$$S[(;;;;;rc|d}	|jdkrtjnd}|t
dttjz|f}t|j
}|tj
|t||jt||||dS#||||wxYw)Nrrrr)rrrrrrrrrryrrirr	rr|r_rr)rmrrZrrs     rtest_async_timeoutz_TestPool.test_async_timeout
sIIaLL
	)-i)?)?IO%%%TE--aG4I)I5%QRRC((Co:CRRR((h??? 		
KKMMM
FFHHHHH 		
KKMMM
FFHHHHs
B+DAEc
|jttt	d}|t|tt
ttt	d|jttt	d}t	dD](}|t|||z)|t|j
|jttt	dd}t	dD](}|t|||z)|t|j
dSNr2r:r%r)rimaprrrOrhrrri
StopIterationrrmrrRs   r	test_imapz_TestPool.test_imap$
sK
Y^^CeBii
1
1b4CeBii(A(A#B#BCCC
Y^^CeBii
1
1r	,	,AT"XXqs++++-555
Y^^CeDkk!2!2c^
B
Bt	,	,AT"XXqs++++-55555rc|jdkr-|d|j|jt
t
ddd}|t|j	|jt
t
ddd}|t|j	|jt
t
ddd}tdD](}|t|||z)|t|j	|jt
t
ddd	}td
D](}|t|||z)|t|j	|jt
t
ddd}tdD](}|t|||z)|t|j	dS)Nrrrr>r2rrrrrr^)
rrrrrrrrirrrOrhrrs   r#test_imap_handle_iterable_exceptionz-_TestPool.test_imap_handle_iterable_exception2
s9	!!MM7>>tyIIJJJY^^C!=a!D!Da
H
H,444
Y^^C!=a!D!Da
H
H,444
Y^^C!=b!!D!Da
H
Hq	,	,AT"XXqs++++,444Y^^C!=b!!D!Da
H
Hq	,	,AT"XXqs++++,444
Y^^C!=b!!D!Da
H
Hq	,	,AT"XXqs++++,44444rc
f|jttt	d}|t
|ttttt	d|jttt	dd}|t
|ttttt	ddSr)rimap_unorderedrrrOrhrr)rmrs  rtest_imap_unorderedz_TestPool.test_imap_unorderedL
s
Y
%
%c4b		??
;
;T#c4b		??*C*C%D%DEEE
Y
%
%c4d+<+<
%
L
LT#c4d3D3D*E*E%F%FGGGGGrc
\|jdkr-|d|j|jt
t
ddd}|t|j	|jt
t
ddd}|t|j	|jt
t
ddd}ttt
ttd}|t5tdD]<}t|}|||||=	dddn#1swxYwY|jt
t
ddd	}ttt
ttd}|t5tdD]<}t|}|||||=	ddddS#1swxYwYdS)
Nrrrr>r2rrrr)rrrrr$rrrirrrrrOrrjr)rmrexpected_valuesrRrs     r-test_imap_unordered_handle_iterable_exceptionz7_TestPool.test_imap_unordered_handle_iterable_exceptionS
s9	!!MM7>>tyIIJJJY
%
%c&B1b&I&I&'))	
,444
Y
%
%c&B1b&I&I&'))	
,444
Y
%
%c&B2q&I&I&'))s3U2YY8899


|
,
,	.	.2YY
.
.R

e_555&&u----
.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.Y
%
%c&B2q&I&I&'))s3U2YY8899


|
,
,	.	.2YY
.
.R

e_555&&u----
.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.s&A
F66F:=F:A
J!!J%(J%c|jdkrtnt}|||jd|||jd|jdkr|d}	|dt
|j||	dS#||	wxYwdS)Nrr>rr)
rRemoteErrorrBrirrhr_poolrr)rmexpected_errorrs   rtest_make_poolz_TestPool.test_make_poolw
s)-i)?)?++)		
.$)R888.$)Q7779	!!		!A
  CLL111						
"!s3(C*C/c|d}dtdD}|tj|d}||dS)Nrc&g|]}tjSrW)rrrs  rrsz,_TestPool.test_terminate.<locals>.<listcomp>
s<<<$<<<ri'rr)rrOrrr
rr)rmrrNrUs    rr<z_TestPool.test_terminate
saIIaLL<<eFmm<<<TZ;;	


	rcP|d}||tgg|t	|tgg|t	|tgg||tgg|	|
dSr)rrhrrrrr$rrrrrKs  rtest_empty_iterablez_TestPool.test_empty_iterable
sIIaLLsB,,,affS"oo..333a..sB7788"===S"--1133R888					rc|jdkrttd}d|D}|d5}|t
|}|||dddn#1swxYwY||	t|jt
|dSdS)Nrr2c,g|]}t|SrW)rrs  rrsz*_TestPool.test_context.<locals>.<listcomp>
s***1A***rr)rrrOrrrrhrrrirB)rmLrVrrs     rtest_contextz_TestPool.test_context
s9##U2YYA*****H1
4KKQ''  (333
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
FFHHHj!+sA>>>>>$#s	ABB Bc td)Nrr/r's r_test_tracebackz_TestPool._test_traceback
s3rcD|jdkr|d5}	||j|dn#t
$r}|}Yd}~nd}~wwxYwdddn#1swxYwY||t|t|
|jd|j}|t|tjj|d|jt$j5}	|#t$r"t+jt+jYnwxYw	dddn#1swxYwY|d||d5}	|t4t7ddd|dn#t
$r}|}Yd}~nd}~wwxYw|t|t8||jddddn#1swxYwY|dSdS)Nrrzexpected RuntimeError)rz&raise RuntimeError(123) # some commentr>zexpected SayWhenError)rrrr8rfrerrjrr0rhrN	__cause__rrRemoteTracebackrjtbr@rrArv
excepthookexc_infogetvaluerrrr)rmrrexccausef1s      rtest_tracebackz_TestPool.test_traceback
sA9##1
77GGD0111II56666!CCCCCC
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
FFHHHMM$s))\222SXv...MEMM$u++';'KLLLMMBEHMMM--//
424I#444NCLNN333343	
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4

MMB++--
)
)
)1
37EE#;ArBBAFFFII56666!CCCCCC

d3ii666

cmT222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
FFHHHHHC$#sA9AA9
A*A% A9%A**A99A=A=
F
E)E=:F
<E==F

FFI?*HI?
H-!H(#I?(H--AI??JJc td)NrVr/r's r_test_wrapped_exceptionz!_TestPool._test_wrapped_exception
s5!!!rc |d5}|t5||jdddn#1swxYwYdddn#1swxYwY|dSr)rrir0rrErrKs  rtest_wrapped_exceptionz _TestPool.test_wrapped_exception
s
YYq\\	6Q""<00
6
64555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	
s4A/AA/A	A/A	 A//A36A3cxtj}|t5|d5}	|tddgtjd||	nA#tjd||	wxYw	dddn#1swxYwYdddn#1swxYwY|
tj|z
ddS)Nrrrrg?)rrrirBrrrr
rr
assertGreater)rmt_startrs   rtest_map_no_failfastz_TestPool.test_map_no_failfast
s.""


z
*
*		1
EE/!Q888JsOOOGGIIIFFHHHHJsOOOGGIIIFFHHHHH















																
4>++g5s;;;;;sMDC.B #=C. >CC."D.C2	2D5C2	6DD	D	cdtdD}d|D}|jt|~t	jt
jt|	td|Ddh|	tjddS)Nc*g|]}tSrW)rrs  rrsz4_TestPool.test_release_task_refs.<locals>.<listcomp>
s333A
333rr2c6g|]}tj|SrW)rfrg)rros  rrsz4_TestPool.test_release_task_refs.<locals>.<listcomp>
s ---1A---rc3*K|]}|VdSrrW)rrrks  rrz3_TestPool.test_release_task_refs.<locals>.<genexpr>
s(11bRRTT111111rr)
rOrrrrhrirr
rJrhr_rr)rmobjsrefss   rtest_release_task_refsz _TestPool.test_release_task_refs
s43r333-----	

h%%%


511D11111D6:::	
2A66666rch|jdkr|d|d}|5	dddn#1swxYwY|t5|5	dddn#1swxYwYdddn#1swxYwY|dS)Nrtest not applicable to managerr)rrrrirBrrmrs  r
test_enterz_TestPool.test_enter
sk9	!!MM:;;;yy||
																	


z
*
*		
















																
		sGAA

A
+B.A<0B<B	BB	BBBc~|jdkr|d|d}||t
jj|_tj
dtf5d}tj
ddddS#1swxYwYdS)NrrUrz%unclosed running multiprocessing pool)rrrrrrrRUN_stater
check_warningsResourceWarningr
gc_collectrVs  rtest_resource_warningz_TestPool.test_resource_warnings9	!!MM:;;;yy||		&*.

+8/JLL	!	!D   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!sB22B69B6)"rrrsrtrrrrrrrrrrr
rrrr r"r%r(r-r<r1r6r8rCrErGrKrSrWr^
__classcell__rs@rrr	s[    [ ===
;;;??????
:::888)))LLL5554<<<6665554HHH".".".H





???  [ $$$L""["<<<(
7
7
7 !!!!!!!rrc td)Nkey)KeyErrorrWrrraisingrds
5//rcdS)NcdS)N*rWrWrrrz%unpickleable_result.<locals>.<lambda> s2rrWrWrrunpickleable_resultrhs
:rceZdZdZdZdZdS)_TestPoolWorkerErrorsrctjd}dgfd}|t|}|t
|j|d|dt
|	|
dS)Nrc|d<dSrrWr@
scratchpads rerrbackz@_TestPoolWorkerErrors.test_async_error_callback.<locals>.errback)sJqMMMrrr)rrrrdrircrrrrr)rmrrorrns    @rtest_async_error_callbackz/_TestPoolWorkerErrors.test_async_error_callback%s ##V
	 	 	 	 	 mmGGm<<(CG,,,
1
&&&jmX666					rcddlm}tjd}t	dD]}dgfd}|t|}|||jd}|	||
d|||j||j
||dS)Nr)MaybeEncodingErrorrrc|d<dSrrWrms rroz?_TestPoolWorkerErrors.test_unpickleable_result.<locals>.errback<s #
1


rrp)multiprocessing.poolrsrrrOrrhrirrrassertIsNotNoner@rrr)rmrsr	iterationrorwrappedrns       @rtest_unpickleable_resultz._TestPoolWorkerErrors.test_unpickleable_result4s;;;;;; ##r	0	0IJ
$
$
$
$
$-- 3G-LLC0#'::: mGOOG$$$!!*Q-1CDDD  ---  ////					rN)rrrsrtrrqryrWrrrjrj"s7#M


rrjc*eZdZdZdZdZdZdZdS)_TestPoolWorkerLifetimerctjdd}|dt|jd|jD}g}tdD]1}||t|f2t|D]:\}}||
t|;|d}|r\td|jDs>|dz}tjt|rtd|jD>d	|jD}|d||d||t%|t%|||dS)
Nrr2maxtasksperchildcg|]	}|j
SrWrrrrs  rrszE_TestPoolWorkerLifetime.test_pool_worker_lifetime.<locals>.<listcomp>Ps111A!%111rr%2c3>K|]}|VdSrrrs  rrzD_TestPoolWorkerLifetime.test_pool_worker_lifetime.<locals>.<genexpr>^s*#B#BQAJJLL#B#B#B#B#B#Brrcg|]	}|j
SrWrrs  rrszE_TestPoolWorkerLifetime.test_pool_worker_lifetime.<locals>.<listcomp>as222Q15222r)rrrhrr+rOrTrr	enumerater_repopulate_poolallrr
rJrrrrr)	rmrorigworkerpidsrrRr;r	countdownfinalworkerpidss	         rtest_pool_worker_lifetimez1_TestPoolWorkerLifetime.test_pool_worker_lifetimeMs R888CLL)))11111s	6	6ANN1==qe445555"'**	0	0HQSWWYYA////			#B#B!'#B#B#B B B	NIJu	#B#B!'#B#B#B B B	32!'222~...///F>22F?4K4KLLL					rctjdd}g}tdD]2}||t
|df3||t|D]:\}}|	|
t|;dS)Nrrr}rg333333?)rrrOrTrrrrrrhr)rmrrrRr;rs      r%test_pool_worker_lifetime_early_closez=_TestPoolWorkerLifetime.test_pool_worker_lifetime_early_closejs
 Q777q	9	9ANN1==q#h778888					!'**	0	0HQSWWYYA////	0	0rcdD]J}|t5tjd|dddn#1swxYwYKdS)N)rr>r12rr})rirBrr)rmrs  r"test_pool_maxtasksperchild_invalidz:_TestPoolWorkerLifetime.test_pool_maxtasksperchild_invalidws'	@	@E"":..
@
@$Q????
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@	@	@sAA		A	cd}tjjd|\}}}||ddS)Naif 1:
            from multiprocessing import Pool
            problem = None
            class A:
                def __init__(self):
                    self.pool = Pool(processes=1)
            def test():
                global problem
                problem = A()
                problem.pool.map(float, tuple(range(10)))
            if __name__ == "__main__":
                test()
        -cr)r@rrassert_python_okrhrmcmdrcoutrns     r>test_worker_finalization_via_atexit_handler_of_multiprocessingzV_TestPoolWorkerLifetime.test_worker_finalization_via_atexit_handler_of_multiprocessing|sG|1BB4MMCQrN)rrrsrtrrrrrrWrrr{r{JsX#M:000@@@
     rr{)BaseManager	BaseProxyr*c eZdZdZdZdZdS)FooBarcdS)Nf()rWrs rrzFooBar.fsurctr)rBrs rgzFooBar.gsrcdS)N_h()rWrs r_hz	FooBar._hsvrN)rrrsrtrrrrWrrrrsArrc#<KtdD]	}||zV
dSr)rO)rRs rbazrs4
2YYc				rceZdZdZdZdZdS)
IteratorProxy)rc|SrrWrs rrzIteratorProxy.__iter__src,|dS)Nr)_callmethodrs rrzIteratorProxy.__next__s
+++rN)rrrsrt	_exposed_rrrWrrrrs7I,,,,,rrceZdZdS)	MyManagerNrrWrrrrsDrrFoo)callableBar)rr)rexposedr)r	proxytypec*eZdZdZdZdZdZdZdS)_TestMyManagerrctt}||||||jjdtj	fdSN)shutdown_timeoutr)
rSHUTDOWN_TIMEOUTrcommonshutdownrj_processrr4r:rmrs  rtest_mymanagerz_TestMyManager.test_mymanagerso-=>>>

G
	


g&/!fn_1EFFFFFrctt}|5||dddn#1swxYwY||jjdtjfdSr)rrrrjrrr4r:rs  rtest_mymanager_contextz%_TestMyManager.test_mymanager_contexts-=>>>
	!	!KK   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!
	


g&/!fn_1EFFFFFs
:>>ctt}||5||dddn#1swxYwY||jjddSr)rrrrrhrrrs  r!test_mymanager_context_prestartedz0_TestMyManager.test_mymanager_context_prestarteds-=>>>


	!	!KK   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!)2A66666sAAAc|||}fddD}fddD}||ddg||ddg|d|tj|dd|tjd|d|
d|dd|dd|t|d	td
DdS)Nc4g|]}t||SrWr3)rrr)rVs  rrsz)_TestMyManager.common.<locals>.<listcomp>(OOOGC<N<NOtOOOr)rrrc4g|]}t||SrWr)rrr)bars  rrsz)_TestMyManager.common.<locals>.<listcomp>rrrrrrrcg|]}||zSrWrWrs  rrsz)_TestMyManager.common.<locals>.<listcomp>s$<$<$<QQqS$<$<$<rr2)
rrrrhrrirBrrr*rrrO)rmrrfoo_methodsbar_methodsrrVs     @@rrz_TestMyManager.commonskkmmkkmmkkmmOOOO(8OOOOOOO(8OOOsCj111sDk222%(((*ce,,,--u555+s===%(((6***--u555..777c$<$<%))$<$<$<=====rN)rrrsrtrrrrrrWrrrrs[ M	G	G	GGGG777>>>>>rrctSr)_queuerWrr	get_queuersMrceZdZdS)QueueManagerNrrWrrrrs..rrrceZdZdS)
QueueManager2NrrWrrrrsJJrr	xmlrpclibcJeZdZdZgdZeddZedZdZdS)_TestRemoteManagerr)hello worldNT@uhallå världenuпривіт світs
hall vrldenNct||tt}||}|t
|jdS)Naddressr
serializerr)r
SERIALIZERrconnectrrrrMrrrrr s     r_putterz_TestRemoteManager._putterseW-///	!!##
		%
##$$$$$rctjd}ttjdf|t
t}|||j	|
|j|j|f}d|_
|t|j|t
t}||}|||j|t*|jt.j~dS)N rrrT)r?urandomrrHOSTrrrr^rrrrrrrrrhrrUrirerrr
)rmrrrmanager2r s      rtest_remotez_TestRemoteManager.test_remote
s*R.."'+W-///	

()))LLGOW3MLNN				 OW-///	""$$dk222	
)UY
;;;
EEr)	rrrsrtrrMrUrrrrWrrrrsa MF
AAAYF%%[%rrmd5c*eZdZedZdZdS)_TestManagerRestartct||tt}||}|ddS)Nrr)rrrrrrrs     rrz_TestManagerRestart._putter-s[W-///	!!##
		-     rcvtjd}ttjdf|t
t}	|}|j}|j	
|||j
|j|f}|||}||d~t%|dr|n*#t%|dr|wwxYwt||t
t}	|||jdS#t*$r}|jt,jkrt1jdt||t
t}t%|dr ||jYd}~dSYd}~dSd}~wwxYw)Nrrrrrrr,)r?rrrrrr
get_serverrlistenerrrrrrrrhrr3rr^OSErrorerrno
EADDRINUSErr
)rmrrsrvraddrrr rs        rtest_rapid_restartz&_TestManagerRestart.test_rapid_restart6s?*R.."'+W!4DFFF	#%%''D<D
M!!!MMOOODL7QRRA
GGIII
FFHHH%%''EUYY[[-888w
++
#  """w
++
#  """"
#'j-///
	2MMOOOOOG,-----
	2
	2
	2w%***
JsOOO"g*!1333Gw
++
2 0111111111
2
2
2
2
2
2
	2s%CD44'E<.F,,
H86A1H33H8N)rrrsrtrrrrWrrrr*s>!![!'2'2'2'2'2rrc	eZdZdZedZdZdZdZdZ	edZ
edd	Zej
ed
dZej
ed
ejejdkd
ejedkdej
eedddZedZej
ed
ejejdkddZdZdS)_TestConnectionrct|jtD]}|||dSr)r
recv_bytesSENTINEL
send_bytesr)rr7msgs   r_echoz_TestConnection._echoisC22	!	!COOC    

rc|\}}||j|f}d|_|gd}td}|dz}t
jdttd}|j	dkr:|
t|t|
||d|
|||
||d|
|||j	dkrNt
jdd	gdz}t|d	gdt%|z
zz}	|
||d|
||t%||jz|
t||	t
jdd	gdz}d	gd
zt|zd	gdt%|z
zz}	|
||d|
||d
|jzt%||jz|
t||	t+td}|
||d	||}
|d
|
zn8#t.j$r&}|
|j|fYd}~nd}~wwxYwt5|j}|
|d||jd	|
|dd||jd	|
|t<d||jt<|dt?j d|
|t<d||jd	|
|dtddz}
||
|
||
|tB|"|j	dkrv|
|j#d|
|j$d|%tL|j|%tL|j|'dS)NrT)rrNrr2rRr^rrrrz(                                        zexpected BufferTooShort, got %sFr>rXi)(rrrrrrrurrOrrhrfilenorErrrrrrecv_bytes_intoitemsize	bytearrayrfrBufferTooShortrNryrrr|rrr
rrreadablewritableriEOFErrorr)rmr7rrrorlongmsgrvbufferrVrrrreally_big_msgs              rtest_connectionz_TestConnection.test_connectionosl99;;jLL
*L??				ooM""(k#tE!HH~~..9##T$++--00#6663...c***--t444**C0009##[qc"f--FCyyA3"s3xx-#88HT__S114888T11&99 XX7
9
9
9T&\\8444[qc"f--FsQwc*aSFSXX4E-FFHT__S114888T11&!fo:MNN XX7
9
9
9T&\\8444uX//FT__W55t<<<
C**622		;cABBBB#1
5
5
5  '44444444
5
TY'''''$$T\1555b5)))$$T\1555h///$$T\8<<<		$
2h...$$T\1555d+++s'78'''**N;;;!!!9##T]D111T]D111h	222h888	s2N  O/OOc|d\}}||dd||d|jdkr||jd||jd||jd||jd|t|jd|t|j|t|j	dSdS)NFrrrTr)
rrhrrrrrrirr)rmreaderwriters   rtest_duplex_falsez!_TestConnection.test_duplex_falses%00Q...***9##V_d333V_e444V_e444V_d333gv{A666gv{333gv{33333$#rc|\}}||j|f}d|_||t
d}||||	||t||dS)NrTr)rrrrrrrrrhrrr)rmr7rrrs     rtest_spawn_closez _TestConnection.test_spawn_closes 99;;jLL
*L??				Gnn**C000!!!

	rc|jdkr-|d|jtd}|\}}|||||||d|||dd||dd|||dd||d||td	||dd
||td	|t|j|d|t|j|dd|t|j|dd
|t|j|d|t|j|dddS)Nrrabcdefghijklmnopqrstuvwxyzrrrrrrr>r^)
rrrrrrrhrrirB)rmrrrs    rtest_sendbytesz_TestConnection.test_sendbytess9##MM7>>tyIIJJJ011yy{{1	S---	S!QRR111	S!QQsU444	S"r333	S"a   r333*alC<<<*alCQ???*alCQ???*alC<<<*alCB?????rc	tj|dS#t$r!}|jtjkrYd}~dSd}~wwxYwr\)r?fstatrrEBADF)rrrs   r_is_fd_assignedz_TestConnection._is_fd_assigned
s[	HRLLL4			w%+%%uuuuu	s
A>>AFcn|rOtddD]>}||s'tj||?tj|}trtj|tj	}tj
||tj|dS)Nrr6)rOrr?dup2rr
recv_handlemsvcrtopen_osfhandlerr/r)rr7datacreate_dummy_fdsrRrs      r_writefdz_TestConnection._writefd
s	.1c]]
.
.**1--.GDKKMM1---

"4
(
(	8&r2;77B
T
r$test needs multiprocessing.reductionc|jdkr|d|d\}}||j|df}d|_||tj	tj
ttj
d5}|}trtj|}tj|||jdddn#1swxYwY|ttj
d5}||dddddS#1swxYwYdS)	Nronly makes sense with processesTrsfoorwbrb)rrrrr!rrr^rrrrrr
get_osfhandler
send_handlerrrhr)rmr7rrrrs      rtest_fd_transferz _TestConnection.test_fd_transfer
s9##MM;<<<99D911jLL
Z4HLII					()*:;;;
)"D
)
)	3QB
.)"--!$AE222		3	3	3	3	3	3	3	3	3	3	3	3	3	3	3
	

)"D
)
)	/QQVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s%7ADDD)E==FFr-*test semantics don't make sense on Windowsr6z)largest assignable fd number is too smallrztest needs os.dup2()c|jdkr|d|d\}}||j|ddf}d|_||tj	tj
ttj
d5}|}tdtD]}||sn|d	t#j||	t'j|||jt#j|n#t#j|wxYw	dddn#1swxYwY|ttj
d
5}||dddddS#1swxYwYdS)Nrr$Trsbarrr%r6z2could not find an unassigned large file descriptorr&)rrrrr!rrr^rrrrrrOMAXFDrrfr?rr
r(rrrrhr)rmr7rrrrnewfds       rtest_large_fd_transferz&_TestConnection.test_large_fd_transfer*
s<9##MM;<<<99D911jLL
Z4NLOO					()*:;;;
)"D
)
)	 QBsE**
P
P++E22E		NOOOGB
 %dE15999	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	

)"D
)
)	/QQVVXXv...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/s=8A.E='EE=E--E==FF6)G,,G03G0cTtj|ddS)N)r?r/rrmr7s  r_send_data_without_fdz%_TestConnection._send_data_without_fdK
s"
&&&&&rzdoesn't make sense on Windowsc\|jdkr|d|d\}}||j|f}d|_||ttj
||dS)Nrr$Trr)rrrrr2rrrir0r
rrrmr7rrs    rtest_missing_fd_transferz(_TestConnection.test_missing_fd_transferO
s
9##MM;<<<99D911jLL :*LOO				,	(=tDDD	rc|\}}|5|5|d||d|jdkr4||j||jdddn#1swxYwYdddn#1swxYwY|jdkrv||j||j|t|j|t|jdSdSNr)
rrrhrrrclosedrrirrs   rr6z_TestConnection.test_context^
syy{{1
	+	+	+	+
FF4LLLQVVXXt,,,yK''  ***  ***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+9##OOAH%%%OOAH%%%gqv...gqv.....	$#s5B=A=B&B=&B*	*B=-B*	.B==CCNr)rrrsrtrrrrrrrrr!rCr
HAS_REDUCTIONr)rurvrwr,r3r?r.r2r5r6rWrrrres,M[
MMM^444*@@@@[			[	X(NOO//PO/$X(NOOX_S\W,ACCX_Uc\@BBXV,,/11//11BBCCPO/4''['X(NOOX_S\W,.MNNONPO/////rrc\eZdZdZdZdZejej	ddZ
dS)
_TestListenerrc|jjD]c}|j|}||j|t|jj|j|ddS)Nfamily)
connectionfamiliesListenerr^rrirr)rmr?rs   rtest_multiple_bindz _TestListener.test_multiple_bindr
syo.	1	1F(((77AOOAG$$$gt'?i
1
1
1
1	1	1rc|j5}|j|j5}|5}|d||ddddn#1swxYwYdddn#1swxYwYdddn#1swxYwY|jdkr"|	t|jdSdSr7r@rBClientracceptrrhrrrir)rmrrr?s    rr6z_TestListener.test_contexty
s
_
%
%
'
'	51''	22
5aXXZZ51FF4LLL$$QVVXXt444555555555555555
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	59##gqx00000$#sX CB0>B
B0BB0 B!B0$C0B4	4C7B4	8CCCz"test needs abstract socket supportc|jd5}|j|j5}|5}|d||ddddn#1swxYwYdddn#1swxYwYdddn#1swxYwY|jdkr"|	t|jdSdS)Nz
somethingr8rrE)rmrclientr?s    rtest_abstract_socketz"_TestListener.test_abstract_socket
s_
%
%m
4
4	5''(899
5V__&&5!KK%%%$$QVVXXt444555555555555555
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	59##gx77777$#sX CB1>BB1BB1!B"B1%C1B5	5C8B5	9CCCN)rrrsrtrrCr6rCrrabstract_sockets_supportedrJrWrrr<r<n
sl"M111111X8=??88??888rr<c:eZdZdZedZdZdZdZdS)_TestListenerClientrc|j|}|d|dS)Nr)r@rFrr)rrr7s   rrz_TestListenerClient._test
s:~$$W--		'

rc|jjD]}|j|}||j|jf}d|_||}|	|
d||dS)Nr>rTr)
r@rArBrrrrrrGrhrrr)rmr?rrr7s     rtest_listener_clientz(_TestListenerClient.test_listener_client
so.		F(((77ADJai\BBAAH
GGIII88::DTYY[['222
FFHHH
GGIIII		rc|j}||j|jf}d|_|tjd|	}|
|d||
|dS)NrTrr)r@rBrrrrrrr
rGrhrrr)rmrrr7s    rtest_issue14725z#_TestListenerClient.test_issue14725
sO$$&&LL
!)L>>				
1


xxzzg...

							rc|jjD]}|j|}|j|j}|}|d||d|	|	|	dS)Nr>hellor)
r@rArBrFrrGrrrr)rmfamrrrs     rtest_issue16955z#_TestListenerClient.test_issue16955
s?+		C(((44A&&qy11A

A
LL"""OOAFF1II&&&
GGIII
GGIII
GGIIII		rN)	rrrsrtrrrrPrRrVrWrrrMrM
s_,M[
			 					rrMcleZdZdZdZedZdZedZdZ	edZ
dZd	S)
	_TestPollrcN|\}}||d|d||d||ddS)NFrT)rrhrrrs   rtest_empty_stringz_TestPoll.test_empty_string
syy{{15)))	S4(((4(((((rc|D]+}tjd||,|dSNr)rr
rr)rr7stringsrs    r_child_stringsz_TestPoll._child_strings
sD		AJsOOOOOA

rctd}|\}}||j||f}||D]U}t	dD]}|drn|}|||V|dS)N)rTrabrsbyersloprrp)	rrr^rrOrrrhr)rmr]rrrrrRrDs        rtest_stringsz_TestPoll.test_strings
sGyy{{1LL 31g,LGG					#	#A3ZZ

66$<<EAQ""""	rc0|ddSr)r)rr5s  r_child_boundariesz_TestPoll._child_boundaries
s	
q					rc|d\}}||j|f}|t	jdddg}|D]}|||||	|
|dS)NFrrsfirstssecond)rrrerrr
rrrrjr)rmr5rrr4r%s      rtest_boundariesz_TestPoll.test_boundaries
syy1LL 6aTLBB				
1



y!		C
LL					

allnna(((((rc|d|d|ddS)Nr`racd)r)rrs  r_child_dont_mergez_TestPoll._child_dont_merge
s>	T	T	Urc|\}}||dd||dd||j|f}|||d||dd||dd||d||dd||dd||dd||d	|dS)
Nr1Frrr`r,Trari)rrhrrrjrrr)rmrrrs    rtest_dont_mergez_TestPoll.test_dont_merge
syy{{1e,,,e,,,LL 6aTLBB				...d+++d+++...d+++d+++d+++///	rN)rrrsrtrrZrr^rcrergrjrlrWrrrXrX
s,M)))[


[
)
)
)[
rrXr"cveZdZdZedZedZedZdZedZ	dZ
dS)	_TestPicklingConnectionsrcRddlm}|tjdS)Nr)resource_sharerr)rrprrr)rrps  rrz&_TestPicklingConnections.tearDownClasss4333333W%9:::::rcz|D]}|j|}||j|}||||t
jtj	df}||
|\}}|||||dS)Nr>r)r@rBrrrGrsocket
create_serverrrgetsocknamer)rr7rArUrnew_connrs       r	_listenerz"_TestPicklingConnections._listeners		C''s'33AIIai   xxzzHIIhNN
GGIIII -"4a!899		!--//"""$		(						rct|jdD]Z\}}|j|}|||[|\}}tj}|||	|||dSr)
rrr@rFrrrrrrsendall)rr7rrrIs     r_remotez _TestPicklingConnections._remote0s"49d33		NWc^**733FKK		$$$LLNNNNyy{{wsyy{{###

rcl|jj}|\}}||j||f}d|_|||\}}||j|f}d|_|||D]}d|z	d}	|
}
||
|	f|
}||
|	
|dtd}	|
}
||
|	f|
}g}	|
d}
|
sn||
.d|}|||	
||d||||dS)NrTzThis connection uses family %sasciiz$This connection uses a normal socketr%r)r@rArrrvrrrryrrrrhrrrTr)rmrAlconnlconn0lprrconn0rprUrrrubufrs              r
test_picklingz&_TestPicklingConnections.test_pickling?s8?+		
v
\\vx6H\
I
I	



		
v
\\VI\
>
>	



	;	;C3c9AA'JJCjjllGJJ~&&&zz||HX]]__ciikk::::

4:;;**,,

GS>"""::<<	

c""A
JJqMMM		
hhsmmciikk***

4








			
					rc(|}|d||}|}||dz|dS)Nall is wellr)rrr)rr7rr5rs     rchild_accessz%_TestPicklingConnections.child_accessmsoIIKK	}				IIKKffhh		#a%

rc|\}}||j|f}d|_|||d\}}|||||d||d\}}||||d|||d|	dS)NrTFrrfoobarfoobarfoobar)
rrrrrrrrhrr)rmr7rrr5rs      rtest_accessz$_TestPicklingConnections.test_accessys5 99;;jLL 1
LFF				yyy&&1		!				=111				yyy&&1		!					x				j111	rN)rrrsrtrrrrvryrrrrWrrrnrns#M;;[;[$[,,,\		[	rrnc8eZdZdZfdZfdZdZdZxZS)	_TestHeaprcttjjj|_tjtjj_dSr)rrrrr_heapold_heapHeaprmrs rrz_TestHeap.setUpsG


',:@
3B3G3L3L3N3N*000rc~|jtjj_tdSr)rrrrrrrrs rrz_TestHeap.tearDowns/37=*0
rc
,d}d}g}tjjj}d|_t|D]}t
tjdddz}tj|}|	|t||krtj|}||=~|j5g}d}	d}
t|jD]H}|D]C\}}
}|	|j||
|||
z
df|	||
z
z
}	DI|jD]J\}}|D]B\}
}|	|j||
|||
z
df|
||
z
z
}
CK||	|
zt+d|jD|tt|dz
D]}||dd	\}}
}||dzdd	\}}}||kr=|||j|j||dp|||	dddn#1swxYwYtj||r||||j|j|t|jd|t|jd|t|jd|j|t|jddS)
Nrrrr:freeoccupiedc3$K|]}|jVdSrry)rrarenas  rrz&_TestHeap.test_heap.<locals>.<genexpr>s$ F F F F F F F Frr)rrrr_DISCARD_FREE_SPACE_LARGER_THANrOrErandomlognormvariaterTr	randrangerr_len_to_seqrM_arenasindex_allocated_blocksrrhsumsortryshuffler_n_frees
_n_mallocs_pending_free_blocks)rm
iterations	maxblocksblocksrrRryrrrrr4rrrarena_blocksnarenanstartnstops                   r	test_heapz_TestHeap.test_heaps
	#17/0,z""		Av,Q22T9::D$22488AMM!6{{Y&&$Y//1IZ	3	3CDH$*113344
)
)*+))&E5$JJ 2 25 9 95$ $U
F 4555T%Z(DD)(,'='C'C'E'E
-
-#|#/--KE4JJ 2 25 9 95$ $U
J 8999e,HH-

TH_  F F F F FFF
H
H
H
HHJJJ3s88A:&&	
3	
3'*1vbqbz$t*-ac(2A2,'F??$$T4<+>+CDDD$$VQ////$$T62222	
3-	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3D	v	JJLLL		
888T677;;;T\**A...T344a9OPPPT-..22222sG	JJJctjs2tj|tjtj}|jtjg|RtjdtdD]N}tj	
d}tj	
d}||_||_OdS)Nr2rr)rh	isenabledenabler^disable
get_threshold
set_thresholdrOrrrbuddy)rm
thresholdsrRrrs     rtest_free_from_gcz_TestHeap.test_free_from_gcs|~~	(IKKKOOBJ'''%''
(6:6666
t		A$22155A$22155AAGAGG		r)	rrrsrtrrrrrr_r`s@rrrsz"MOOOOO>3>3>3@rrc$eZdZdefdefdefgZdS)_FoorDrEzN)rrrsrtr9r:r;_fields_rWrrrrs+	e	h	j
HHHrrcBeZdZdZdZedZd	dZdZdZ	dS)
_TestSharedCTypesrcBts|ddSdSrGrHrs rrz_TestSharedCTypes.setUp
rIrc$|xjdzc_|xjdzc_|xjdzc_|xjdzc_|xjdzc_|xjdzc_tt	|D]}||xxdzcc<dSrt)rrDrErOr)rrDrErrVrvstringrRs        r_doublez_TestSharedCTypes._doubles	1	1	1

s3xx		AFFFaKFFFF		rFc	tdd|}ttd|}ttd|}ttdd|}|dtt
d	|}|d
d|}td|_|	|j
||||||f
}d|_||
||jd||jd||jd||jd||jdt
d	D]!}	|||	|	dz"||jtddS)NrRrr\gUUUUUU?rBrrr?r2rrrrTgUUUUUU?rCr@
hellohello)rr:r;rrtrrOrrrrrrrrhrrDrE)
rmrbrDrErrVrvrrrRs
          rtest_sharedctypesz#_TestSharedCTypes.test_sharedctypess#qt$$$(G$///*gD111D!QT***jjd599ooDj99C$//W~~LLAq!S#v3NLOO					"%%%qw000'***"""suc***r	0	0A""3q61Q3////u\':':;;;;;rc2|ddS)NTr\)rrs rtest_synchronizez"_TestSharedCTypes.test_synchronize3sD)))))rctddd}t|}d|_d|_d|_||jd||jd||jddS)Nr@rBr)rrrDrErrhr)rmrVrs   r	test_copyz_TestSharedCTypes.test_copy6s1c7##3ii"""suc***(((((rNr)
rrrsrtrrrrrrrrWrrrr	sx"MCCC[<<<<.***)))))rrz&requires multiprocessing.shared_memoryceZdZdZedZdZdZdZdZ	dZ
dZd	Ze
jejd
kddZe
jejd
kd
dZdZdZdZdZdZdS)_TestSharedMemoryrct|trtj|}n|}||jdt|<|dSr)rrkrSharedMemoryrrr)shmem_name_or_objbinary_data	local_smss   r!_attach_existing_shmem_then_writez3_TestSharedMemory._attach_existing_shmem_then_writeGs]'--	*%23DEEII)I+6	
's;'''(rcH|ttjzSr)rkr?r)rmprefixs  r
_new_shm_namez_TestSharedMemory._new_shm_namePsBIKK((((rcX|d}tj|dd}||j||j|||jd|t|j
|j||jt||t|jt|d|j
d<||j
ddtj|}||j
dd|
tj|d|jz}||jd|jz|
|t 5tjdd	dddn#1swxYwY|t 5tjd
dddn#1swxYwYt"jd5}tj|d
|dg}fd|D}||_tjdd}||j||j|d||_tjdd}||j||j|ddddn#1swxYwYtjr|d}	tj|	dd}
|t05	||
jdtj|	}||
|

|
n#|
wxYw	dddn#1swxYwY|t25tj|dd}dddn#1swxYwYtjrWGddtj}
|
|}||j|j|
|t05tjd}|dddn#1swxYwY|
dS)Ntest01_tsmbTcreateryrgrrrFr,multiprocessing.shared_memory._make_filename	test01_fn	test02_fncg|]}|zSrWrWrrr)NAME_PREFIXs  rrsz?_TestSharedMemory.test_shared_memory_basics.<locals>.<listcomp>:::D[4':::rrtest01_dblunlinkrc,eZdZejejzZdS)O_TestSharedMemory.test_shared_memory_basics.<locals>.OptionalAttachSharedMemoryN)rrrsrtr?rO_RDWR_flagsrWrrOptionalAttachSharedMemoryrsbi/rrtest01_notthere)rrrr^rrhr)r6ryrrrjrkr
assertLessrirBrCmockpatch_SHM_NAME_PREFIXside_effect_name
_USE_POSIXFileNotFoundErrorFileExistsError)rm	name_tsmbsmsalso_smssame_smsmock_make_filenamenamesshm1shm2name_dblunlinksms_unosms_duothere_can_only_be_one_smsrok_if_exists_smsnonexisting_smsrs                @rtest_shared_memory_basicsz+_TestSharedMemory.test_shared_memory_basicsVs&&}55	(4cJJJ
###	
9---#...CGch777	


chC)))

c#(mmSXX...
R(((!-i88a"---!-ibkJJJ
r#({333

z
*
*	=	=&d<<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=

z
*
*	5	5&e4444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5
]
 
 :<<	3?Q'8K''44d6H6H6U6UVE;:::E:::E-2* -TBBBDOODK(((TZq222-2* -TBBBDOODK(((TZq222#	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3&#	%"//0BCCN#0G
""#455

%

%	%++GL$???+8HHGNN$$$MMOOOMMOOONN$$$$GNN$$$$$

%

%

%

%

%

%

%

%

%

%

%

%

%

%

%


/
/		)6(B)))%															#	%
0
0
0
0
0]-G
0
0
099)DD-2CH===""$$$

0
1
1	%	%+89JKKO""$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%			s+HHH3III?C5NNNRA+Q
RQ55RR	R	*SSS)VVVc`tjd5}tj|d|dg}fd|D}||_tjdd}||j	|
|j|d||_tjdd}||j	|
|j|dddddS#1swxYwYdS)	Nr	test03_fn	test04_fncg|]}|zSrWrWrs  rrszA_TestSharedMemory.test_shared_memory_recreate.<locals>.<listcomp>rrTrrr)rCrrrrrrrr^rrhr)rmrrrrrs     @rtest_shared_memory_recreatez-_TestSharedMemory.test_shared_memory_recreatesg]
 
 :<<	3?Q'8K''44d6H6H6U6UVE;:::E:::E-2* -TBBBDOODK(((TZq222-2* -TBBBDOODK(((TZq222#	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3sC5D##D'*D'c|t5tjdd}dddn#1swxYwY|t5tjdd}dddn#1swxYwY|t5tjd}ddddS#1swxYwYdS)NTr>rrr)rirBrr)rmsms_invalids  r"test_invalid_shared_memory_crationz4_TestSharedMemory.test_invalid_shared_memory_crations


z
*
*	K	K'4DrJJJK	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K

z
*
*	J	J'4DqIIIK	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J

z
*
*	B	B'4DAAAK	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	Bs3>AA#BB

B
+CCCc	`ttjdzD]}||5t	jdd}||jd|jdd<tj	||	}tj
|}||tj||j
|j
|t|jddd|t|jdddd
|jdd<|t|jddd
|t|jddd
d|jdd<|t|jddd|t|jddddddn#1swxYwYdS)NrprotoTrrpicklerrprotocolsnewvalsoldval)rOpickleHIGHEST_PROTOCOLrrrr^rrdumpsloadsrrhr)r)rmrrpickled_smssms2s     r"test_shared_memory_pickle_unpicklez4_TestSharedMemory.test_shared_memory_pickle_unpicklesL62Q677	B	BEE**
B
B#03GGG
+++(!%l3???|K00%%dM,FGGG  49555  swqs|!4!4i@@@  tx!}!5!5yAAA )!  swqs|!4!4i@@@  tx!}!5!5yAAA )1
  swqs|!4!4i@@@  tx!}!5!5yAAA-
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B	B	BsGH!!H%	(H%	cttjdzD]}||5t	jdd}d|jdd<tj||	}||	|
t5tj|dddn#1swxYwYdddn#1swxYwYdS)
Nrr
Trrrrrr)
rOrrrrrrrrrrirr)rmrrrs    r.test_shared_memory_pickle_unpickle_dead_objectz@_TestSharedMemory.test_shared_memory_pickle_unpickle_dead_objectsc62Q677	.	.EE**
.
.#03GGG(!$l3???		

&&'899..L---...............
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.	.	.s6A;C(0CC(CC(CC((C,	/C,	ctjdd}||j||j|jdf}d|_||	|
t|jddd||j|df}d|_||	|
t|jddd|
dS)NTrrshowdyrrsHELLO)rrr^rrrr)rrrrhrrr)rmrrs   r#test_shared_memory_across_processesz5_TestSharedMemory.test_shared_memory_across_processess%(3???
###
LL9(H%


					swrr{++X666
LL9x


					swrr{++X666		rr%z#not feasible in non-posix platformsc0tj}||td}t
j|jj	tj|td}|t5t
jt
jtjdddn#1swxYwY|dSr)rmanagersSharedMemoryManagerr
ShareableListrOr?r@rrr4rrirrr)rmsmmslsl2s    r4test_shared_memory_SharedMemoryServer_ignores_sigintzF_TestSharedMemory.test_shared_memory_SharedMemoryServer_ignores_sigint.s
&::<<		

uRyy
)
)
	 &-000b		**

0
1
1	0	0GBIKK///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	s:1C77C;>C;zresource_tracker is posix onlycd}tjjd|\}}}||dS)Nzif 1:
            from multiprocessing.managers import SharedMemoryManager


            smm = SharedMemoryManager()
            smm.start()
            sl = smm.ShareableList(range(10))
            smm.shutdown()
        r)r@rrrrrs     r>test_shared_memory_SharedMemoryManager_reuses_resource_trackerzP_TestSharedMemory.test_shared_memory_SharedMemoryManager_reuses_resource_trackerFsG|1BB4MMC	
rctj|t5ddddn#1swxYwYfdtddD}fdtddd	D}tj	|d
j
j}|t|dtj|d
j}|t|jd|d
j}t"jdkrG|t&5tj|}dddn#1swxYwYtj5}|	d
}|d}	|j
j}dddn#1swxYwYt"jdkrJ|t&5tj	|}
ddddS#1swxYwYdSdS)NrrcTg|]$}t|%SrW)r rO)rrrRsmm1s  rrszS_TestSharedMemory.test_shared_memory_SharedMemoryManager_basics.<locals>.<listcomp>`s-DDD""588,,DDDrrr2c<g|]}|S)r)r)rrr;r)s  rrszS_TestSharedMemory.test_shared_memory_SharedMemoryManager_basics.<locals>.<listcomp>as*GGGa!!q!))GGGrrrr)r-howdy)rrrrirBrrrOrr shmr)rhrr6rrrvrwr)rmlollomdoppleganger_list0doppleganger_shm0	held_name
absent_shmsmm2r"r/	absent_slr)s           @r-test_shared_memory_SharedMemoryManager_basicsz?_TestSharedMemory.test_shared_memory_SharedMemoryManager_basics[sh';;==


z
*
*	&	&1%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&

DDDDeArllDDDGGGG5S"3E3EGGG*8c!fjoNNN/00!444)6CFKHHH$5$9 : :B???FK	

<7""""#455
H
H*7YGGG

H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
%
9
9
;
;	$t##G,,B###--CI	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$<7""""#455
H
H)7YGGG	
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H#"sGAA!$A!F22F69F68HH#&H#I77I;>I;ctjgd}||jj||jjt||tt|t||	t5|ddddn#1swxYwY|	t5d|d<dddn#1swxYwY|d}d|d<|||d||j
d|t|dtj5tjd|	t$5|ddddn#1swxYwY||d	d
dddn#1swxYwY||dd||dd|t)|dd
|d
<||d
d
d|d<||dd||j
d|t$d5d|d<dddn#1swxYwY||ddd|d<||dd||dd|t$d5d|d<dddn#1swxYwY||dd|t$d5d|d<dddn#1swxYwY||ddtj5tjd||d
d||dd||dddddn#1swxYwY|d}tj||}	||jj|jj|||jj|t|t|||j
|j
d|d<||dd||dd|j|jn#|jwxYwtj|jj}||jj|jjd|d<||dd|j|jtj}	|t|d||j
d||dd|	t$5|ddddn#1swxYwY|j|jdS#|jwxYw) N)r.HoWdYgX9vqr%NTrgrrrr.z8s8sdqxxxxxx?xxxxxxxx?qignore100r%rrTrgsomer^z8s8sdq8sxxxxxxx?qzexceeds available storagezfar too manyuencodésrr:u	encodéess	123456789sadiostest03_duplicater-Mr>iprany)rr r^r/rrjr)rkrri
IndexError_get_packing_formatrhrrwarningscatch_warningssimplefilterrBrrrWrrrr)rmr"current_formatname_duplicatesl_copysl_tetheredempty_sls       r'test_shared_memory_ShareableList_basicsz9_TestSharedMemory.test_shared_memory_ShareableList_basicsys[	

(>>>

	

&&&	


bfk3r77+++

c$r((mmSWW---

z
*
*		qEE															

z
*
*		BqE															//221)?)?)B)BCCC	
$=>>>	
R!$$$
$
&
&	/	/!(+++"":..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 RXXc]]A...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	
A(((B&&&	
"II>	
	
	
1A###1A'''$7888

#
#J$?AA	#	#"BqE	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	
A'''1A
+++A)))

#
#J$?AA	 	 BqE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
A)))

#
#J$?AA	!	! BqE	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!	
A)))
$
&
&	4	4!(+++RXXb\\1---RXXh//333RXXh//333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4++,>??-b~FFF
	!W[-=>>>^W[-=>>>T"XXtG}}555RY777GBKWR["---2+++KK    GK    $1rv{CCCko&:;;;BB%%%
!.00	"S]]A...X_b111X^^E22A666"":..
%
%t$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%L   L!!!!!HL!!!!s:	CCC4DD

D
%/H6G6*H66G:	:H6=G:	>,H66H:=H:L&&L*-L*%N77N;>N;9PPPBS!!S%(S%C0X""X=0B_1^_^_^__-cBttjdzD]}||5t	jtd}||jjtj	||}tj
|}||tj||dd|
||d|d<||ddd	|d
<||d
d	t	jtd}||jjtj	||}|t|t||j|j|jdddn#1swxYwYdS)Nrr
r2rr>rchangedr^newvalueri)rOrrrrr r^r/rrrrrhassertIsNotrr)rmrr"
serialized_sldeserialized_sl	larger_slserialized_larger_sls       r)test_shared_memory_ShareableList_picklingz;_TestSharedMemory.test_shared_memory_ShareableList_picklings!62Q677		EE**

"0r;;
... &R% @ @ @
"(,}"="=%%#]%@BBB  !4a888  _555%."  A	222"1  !3Z@@@)7c

CC		
 4555'-|I'N'N'N$  ]!3!3S9M5N5NOOO
##%%%#))+++/














		sGHH	H	cttjdzD]}||5t	jtd}tj||}|j|j	|
t5tj|dddn#1swxYwYdddn#1swxYwYdS)Nrr
r2r)
rOrrrrr rr/rrrirr)rmrr"rPs    r5test_shared_memory_ShareableList_pickling_dead_objectzG_TestSharedMemory.test_shared_memory_ShareableList_pickling_dead_objectsY62Q677	0	0EE**

0

0"0r;; &R% @ @ @


&&'89900L///000000000000000

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0	0	0s6BC19CC1CC1!C"C11C5	8C5	cd}tjtjdd|gtjtj5}|j}|	|
d}tjtj
|D]*}	tj|d}#t $rYnwxYwt"jdkrYt'jd	|d
|j}|d|ddddS#1swxYwYdS)NaXif 1:
            import os, time, sys
            from multiprocessing import shared_memory

            # Create a shared_memory segment, and send the segment name
            sm = shared_memory.SharedMemory(create=True, size=10)
            sys.stdout.write(sm.name + '\n')
            sys.stdout.flush()
            time.sleep(100)
        -ErrzIA SharedMemory segment was leaked after a process was abruptly terminatedFrr%/rz[resource_tracker: There appear to be 1 leaked shared_memory objects to clean up at shutdown)
subprocessPopenrvrPIPErreadlinestripdecoderr/rsleeping_retryrrrrr?r)r&
unregisterrrrj)rmrrr)err_msgrr!rns        r4test_shared_memory_cleaned_after_process_terminationzF_TestSharedMemory.test_shared_memory_cleaned_after_process_terminations	
s~tT3?%/_%/_666 	J9:8$$&&,,..5577D
KKMMM
FFHHH;G+G,@'JJ

'4T%HHHCC(EEw'!!!+JJJHHH
hmmoo,,..

DEHJJJ= 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	Js7B	E$CE$
C+'E$*C++A,E$$E(+E(N)rrrsrtrrPrrrrrrrrrCrur?r)r$r&r8rKrTrVrcrWrrrrAsd#M\)))nnn`333,BBBBBB4
.
.
.8X_RW')NOOPO.X_RW')IJJKJ(HHH<o"o"o"b6000+J+J+J+J+JrrcleZdZdZdZdZedZdZe	j
ddZdS)	
_TestFinalizerctj|_tjdSr)r_finalizer_registryrregistry_backuprrs rrz_TestFinalize.setUpHs4#7<<>> &&(((((rctj|tjtj|jdSr)rhrirrrgupdaterhrs rrz_TestFinalize.tearDownLsD

1222 ''(<=====rcGddt}|}tj||jd~t	j|}tj||jd}||~t	j|}tj||jd|}tj||jdd	|}tj||jd
d	|}	tj|	|jdd	|}
tj|
|jd
d	tjd|jdd	tjd|jdd	tj|tj	ddS)NceZdZdS))_TestFinalize._test_finalize.<locals>.FooNrrWrrrrmSDrr)rr)r)r)d10r)rNexitpriority)d01r)d02)d03)ri)STOPi)
r?rFinalizerrhri_exit_functionrr?_exit)rr7rrrclose_brrorqrrrss           r_test_finalizez_TestFinalize._test_finalizeQs					&			
CEE
a0000


CEE-496:::						


CEE
a0000cee
c498!DDDDcee
c498!DDDDcee
c498!DDDDcee
c498!DDDD
dDIFEEEE
dDIIDIIII	



rc:|\}}||j|f}d|_||dt
|jdD}||gddS)NrTcg|]}|SrWrW)rrr%s  rrsz/_TestFinalize.test_finalize.<locals>.<listcomp>s999##999rrt)rrrorsrrrqr)	rrryrrrrrrh)rmr7rrrUs     r
test_finalizez_TestFinalize.test_finalizeys99;;jLL 3:-LHH					99di!8!8999!L!L!LMMMMMrrc	dGfddtd	d	fd}	fd}tj}tj}	tjdtjdddtj|	tj|	g}tj
|5tjd
d	dddn#1swxYwY	tj|tj|tj
dS#tj|tj|tj
wxYw)NcdSrrWrWrrcbz,_TestFinalize.test_thread_safety.<locals>.cbDrceZdZfdZdS)-_TestFinalize.test_thread_safety.<locals>.Foocj||_tj|tjdddS)Nrr%)rp)rgrrurrandint)rmrs rr}z6_TestFinalize.test_thread_safety.<locals>.Foo.__init__s3
dBV^As5K5KLLLLLLrN)rrrsrtr})rsrrrs5
M
M
M
M
M
M
MrrFcsZtjtjdz	tjn#t
$r}|Yd}~nd}~wwxYwXdSdSr\)rr
rr_run_finalizersre)rr@finishs rrun_finalizersz8_TestFinalize.test_thread_safety.<locals>.run_finalizerss

6=??T1222(**** CCCCCC





sA
AAAci}sc	fdtdD|tjd<n-#t$r }||Yd}~nd}~wwxYwadSdS)Nc$h|]}
SrWrW)rrrRrs  r	<setcomp>zL_TestFinalize.test_thread_safety.<locals>.make_finalizers.<locals>.<setcomp>s/I/I/I!/I/I/Irr2r)rOrgetrandbitsrer)r?rrr@rs  rmake_finalizersz9_TestFinalize.test_thread_safety.<locals>.make_finalizerssA
0J/I/I/IuRyy/I/I/IAf(++,, CGGIIIIIIII




s08
A"AA"gư>rrrT)r?rvgetswitchintervalrhrsetswitchintervalrrrr	
start_threadsrr
ri)
rmrrold_interval
old_thresholdrrrr@rs
      @@@@rtest_thread_safetyz _TestFinalize.test_thread_safetys				M	M	M	M	M	M	M&	M	M	M												
	
	
	
	
	
	
	,..(**

	!$'''Q1%%% '~>>> '???AG!/88


3














	
!,///m,,JLLLLL
!,///m,,JLLLLs1A(D'=C D' C$$D''C$(D''7EN)rrrsrtrrrrryr|rrrrWrrrereDs"M)))>>>
%%[%N	N	N	NWu%%44&%444rreceZdZdZdZdS)_TestImportStarctddl}tjtj}tj||d}||}d|D}d|D}|d|	d|S)Nrz*.pycg|]J}tjtj|ddKS)rr)r?rsplitextsplit)rrrs  rrsz4_TestImportStar.get_module_names.<locals>.<listcomp>s@KKK27##BGMM!$4$4Q$788;KKKrcg|]}d|zS)zmultiprocessing.rW)rrrs  rrsz4_TestImportStar.get_module_names.<locals>.<listcomp>s;;;a%);;;rzmultiprocessing.__init__r)
globr?rdirnamer__file__rescaperrT)rmrfolderpatternfilesmoduless      rget_module_namesz _TestImportStar.get_module_namess!9::',,t{{622F;;		'""KKUKKK;;7;;;1222()))rcb|}tjdkr@|d|d|dn1|dts|dt
|d|D]z}t
|tj|}|t|d||j
D]+}|t|||d|,{dS)	Nr-zmultiprocessing.popen_forkz multiprocessing.popen_forkserverz!multiprocessing.popen_spawn_posixz!multiprocessing.popen_spawn_win32zmultiprocessing.sharedctypes__all__z does not have attribute )rrvrwrr:r9r2rrr3r)rmrr)modattrs     rtest_importz_TestImportStar.test_imports@''))<7""NN7888NN=>>>NN>????NN>??? 
CABBB=NN9:::				Dt+d#COOGC33T:::

C&&7:ssDDA
				rN)rrrsrtrrrWrrrrs2			rrc4eZdZdZdZedZdZdS)_TestLoggingrc tj}|tj||du|d|d|tdS)Nzthis will not be printedz
nor will this)	r
get_loggersetLevelr
SUBWARNINGrdebuginfo	LOG_LEVEL)rmloggers  rtest_enable_loggingz _TestLogging.test_enable_loggingsx +--(((d*+++/000O$$$	"""""rcztj}||dSr)rrrgetEffectiveLevel)rr7rs   r_test_levelz_TestLogging._test_levels4 +--		&**,,-----rcd}d}tj}tj}|j}tjd\}}||||j|f}|	|
||||
|tj||||j|f}|	|
||||
|||tdS)Nr%Frr)level)rrlogging	getLoggerrrrrrrrhrrrNOTSETr)	rmLEVEL1LEVEL2rroot_logger
root_levelr
rrs	         r
test_levelz_TestLogging.test_levelsm +--')) &
(-U;;;LL 0yLAA				///					'''V$$$LL 0yLAA				///					Z(((i(((((rN)rrrsrtrrrrrrWrrrrsR"M###..[.)))))rrcpeZdZdZedZejee	dddZ
dS)_TestPollEintrrcltjdtj|tjdSr\)rr
r?r@r4SIGUSR1)rrs  r_killerz_TestPollEintr._killer4s)
3
V^$$$$$rrrequires SIGUSR1cdgfd}tj}tjtj|}	||j|f}|	|tjd}||	|	n#|	wxYw|
d||jdtjtj|dS#tjtj|wxYw)NFcdd<dS)NTrrW)rN
got_signals rrecordz._TestPollEintr.test_poll_eintr.<locals>.record<s JqMMMrr)rr)
r?rr4rrrrrr
rrrhr)rmrr
oldhandlerkillerrrs      @rtest_poll_eintrz_TestPollEintr.test_poll_eintr9s%W
	!	!	!	!	!ikk]6>6::
	6\\SF\CCFLLNNN
LL
L>>			







OOJqM***QZ+++M&.*55555FM&.*5555s$1D=/A	C
8D=
C##9D==!EN)rrrsrtrrrrCrr3r4rrWrrrr0sk"M%%[%X335GHH66IH666rrcBeZdZejeddZdS)TestInvalidHandleskipped on Windowsc*tjd}	|n#tt
f$rYnwxYwd|_n#d|_wxYw|tt
ftjjddS)NiMr>)rr@
ConnectionrrBr_handlerir1s  rtest_invalid_handlesz&TestInvalidHandle.test_invalid_handlesTs)44X>>	 IIKKKKG$			D	
 DLL4DL:w/)4?	E	E	E	E	Es&6AA
A	A

A	AN)rrrsrtrCruWIN32rrWrrrrRsBX_U011EE21EEErrceZdZdZdZdS)	OtherTestcGddt}|tjtjj|ddS)NceZdZdZdZdS)FOtherTest.test_deliver_challenge_auth_failure.<locals>._FakeConnectioncdS)Nsomething bogusrWrmrys  rrzQOtherTest.test_deliver_challenge_auth_failure.<locals>._FakeConnection.recv_bytesjs))rcdSrrWrmrs  rrzQOtherTest.test_deliver_challenge_auth_failure.<locals>._FakeConnection.send_byteslrN)rrrsrtrrrWrr_FakeConnectionris2
*
*
*




rrabc)r?rirAuthenticationErrorr@deliver_challengermrs  r#test_deliver_challenge_auth_failurez-OtherTest.test_deliver_challenge_auth_failurehsk					f			
	
/=)4F)/++V	5	5	5	5	5rcGddt}|tjtjj|ddS)Nc eZdZdZdZdZdS)EOtherTest.test_answer_challenge_auth_failure.<locals>._FakeConnectioncd|_dSr)rrs rr}zNOtherTest.test_answer_challenge_auth_failure.<locals>._FakeConnection.__init__ts



rcx|xjdz
c_|jdkrtjjS|jdkrdSdS)Nrrrr)rrr@	CHALLENGErs  rrzPOtherTest.test_answer_challenge_auth_failure.<locals>._FakeConnection.recv_bytesvs>

a

:??*5??Z1__--srcdSrrWrs  rrzPOtherTest.test_answer_challenge_auth_failure.<locals>._FakeConnection.send_bytes}rrN)rrrsrtr}rrrWrrrrssA










rrr)r?rirrr@answer_challengers  r"test_answer_challenge_auth_failurez,OtherTest.test_answer_challenge_auth_failurersk					f				
/=)4E)/++V	5	5	5	5	5rN)rrrsrtrrrWrrrres255555555rrc&|xjdz
c_dSr)r@)nss rinitializerrsGGqLGGGGrc&eZdZdZdZdZdZdS)TestInitializersctj|_|j|_d|j_dSr)rManagermgrrrr@rs rrzTestInitializers.setUps4"*,,($$&&rcj|j|jdSr)rrrrs rrzTestInitializers.tearDowns)

rcVtj}|t|jd|t|jf||jj	d|
|dSr)rrSyncManagerri	TypeErrorrrrrhr@rr)rmrs  rtest_manager_initializerz)TestInitializers.test_manager_initializers$0022)QWa000	dgZ(((q)))	

	rc&|ttjdtjdt|jf}||||jj	ddS)Nr)r)
rirrrrrrrrhr@rKs  rtest_pool_initializerz&TestInitializers.test_pool_initializersr)_%9qIII K$'<<					q)))))rN)rrrsrtrrrrrWrrrrsP
*****rrc`	|d}dS#tj$rYdSwxYw)NF)block)rrr)ritems  r_this_sub_processrsB
uu5u!!=



s--ctj}tjt|f}d|_||dSrI)rrrrrrr)r subProcs  r
_test_processrsM!##E%->eXNNNGGNMMOOOLLNNNNNrc||zSrrWrs r_afuncrrrctjd}|tgd}||dS)Nr^r)rrrr^rrr)rrrrrr)rrDs  rpool_in_processr
sM!,,,D...//AJJLLLIIKKKKKrc6eZdZdZedZdZdZdS)
_file_likec"||_d|_dSr)	_delegate_pid)rmdelegates  rr}z_file_like.__init__s!			rchtj}||jkr||_g|_|jSr)r?rr_cachers  rcachez_file_like.caches0ikk$)DIDK{rc:|j|dSr)rrTrs  rr/z_file_like.writes
$rcx|jd|jg|_dS)Nr)rr/rrrrs rflushz_file_like.flushs1RWWTZ00111rN)rrrsrtr}propertyrr/rrWrrrrs\X   rrc eZdZdZdZdZdS)TestStdinBadfiledescriptorctjt}||dSNr)rrrrr)rmrs  rtest_queue_in_processz0TestStdinBadfiledescriptor.test_queue_in_processs3&m<<<

		rctjt}||dSr)rrr
rrrKs  rtest_pool_in_processz/TestStdinBadfiledescriptor.test_pool_in_processs3#?;;;					rctj}t|dt	jfd}dS)NrVc,Sr)r)flikesrrz:TestStdinBadfiledescriptor.test_flushing.<locals>.<lambda>sekkmmrr)rrrr/rrr)rmsiorr!s   @r
test_flushingz(TestStdinBadfiledescriptor.test_flushingsYkmm3
E&.C.C.C.CDDD





rN)rrrsrtrrr#rWrrrrsA

'''''rrceZdZedZddZedZddZdZdZ	e
jdd	Zed
Z
e
jddZdZd
S)TestWaitctdD]T}|r(tjtjdz||tjfU|dS)Nr2r)rOrr
rrr?rr)rrslowrRs    r_child_test_waitzTestWait._child_test_waitskr	%	%A
4
6=??U2333
FFAry{{#$$$$						rFc"ddlm}g}gg}tdD]}tjd\}}tj|j||f}d|_||	|
|
|||j|rs||D]e}	|
}	|
|	-#t$r,|||	YbwxYw|s|t#fdtd	D}
|||
dS)
Nrr.r^FrrTc34K|]}D]
}||jfVdSrr)rrrRrrys   rrz%TestWait.test_wait.<locals>.<genexpr>s6GGGGA1ae*GGGGGGGrr2)multiprocessing.connectionr/rOrrrr(rrrrTr^rrrrrrrh)rmr'r/readersmessagesrRr5rrrrVrys           @r	test_waitzTestWait.test_waits333333q	$	$A"'u555DAq't/DAt9UUUAAH
GGIII
GGIIINN1LLOOOOOAF####	)T']]
)
))&&((C
OOC((((	 NN1%%%GGIIIII		)	

GGGGeBiiGGGGG8,,,,,sD3D87D8cLtj}||tdD]W}|r(tjtjdz|d|zdX|dS)Nr2r%s
r{)	rrrrOrr
rrxrr)rrr'rrRs     r_child_test_wait_socketz TestWait._child_test_wait_socketsMOO			'r	4	4A
4
6=??U2333
IIvz))'223333						rcddlm}tjtjdf}|}g}g}i}tdD]i}tj	|j
||f}	d|	_|	|
|	||	jjtdD]3}|\}
}|
|
g||
<4||rl||D]^}
|
d}|s*||
|
C||

|_|lddtd	Dd
}
|D]+}|d||
,dS)Nrr.r^rTrrc3 K|]	}d|zV
dS)r0NrWrs  rrz,TestWait.test_wait_socket.<locals>.<genexpr>:s&99!6A:999999rr2r{r)r+r/rrrsrrrtrOrrr1rrrTr^rrGrrrrrMrh)rmr'r/rrr,rydicrRrr5rrrVvs               rtest_wait_socketzTestWait.test_wait_sockets333333 -"4a!899}}q	$	$A't/K.2D\;;;AAH
GGIIILLOOOOOAF####q		A88::DAqNN1CFF					'T']]
'
'ffRjj'NN1%%%GGIIIIFMM#&&&&	'7799uRyy99999@@II	4	4ASXXa[[(3333	4	4rc0|ddSrK)r.rs rtest_wait_slowzTestWait.test_wait_slow>strc0|ddSrK)r6rs rtest_wait_socket_slowzTestWait.test_wait_socket_slowAsd#####rrmcddlm}d}tj\}}t	j}|||g|}t	j|z
}||g|||tz
|	d|||gd}|||gdS)Nrr.rr)
r+r/rrrrrhrIrr)rmr/r3rrrrr7s        rtest_wait_timeoutzTestWait.test_wait_timeoutDs333333#%%1  dAq67##  5(b!!!5'I"5666	tdAq62qc"""""rcV|tj|dSr)r_rr
)rrnperiods   rsignal_and_sleepzTestWait.signal_and_sleepVs%



6rc.ddlm}d}d}tjd}tj\}}tj|j||f}|||j	t||dtj}|||j	|g|dz}	tj|z
}
||	|j	g||
|dz||
|dz
|dtj}|||j	|gd}	tj|z
}
|||	||j	|g||
d	|dtj}|||j	|gd}	tj|z
}
|||	|||j	|g||
d	||dS)
Nrr.rc&t|dS)Nc t|Sr)rQrs rrz>TestWait.test_wait_integer.<locals>.<lambda>.<locals>.<lambda>`sBqEEr)rb)r)rs rrz,TestWait.test_wait_integer.<locals>.<lambda>`sF1//:::rrrrrg?)r+r/rrqrrr?rrr]rErr^rrrhrrIrrr)rmr/rVsorted_rnrrrrrr7s           rtest_wait_integerzTestWait.test_wait_integer[sk333333::'**#%%1#4+@*-x
:
:
:	
			aj#...B//000  dAqz1%x"}55  5(qzl+++x!|,,,5(Q,///	t  dAqz1%r**  5(ww
A'?'?@@@s###	t  dAqz1%r**  5(ww1:q/A'B'BCCCs###	


	rcTddlm}tj\}}t	j}||gd}t	j|z
}||g||d||dS)Nrr.r>rr)	r+r/rrrrrhrr)rmr/rrrrs      rtest_neg_timeoutzTestWait.test_neg_timeouts333333#%%1NdA3###Nq b!!!1										rNr)rrrsrtrr(r.r1r6r8r:rrr<r?rDrFrWrrr%r%s[----<[!4!4!4!4F$$$Wz**##+*#"[Wz**))+*)V					rr%cveZdZejeddZejeddZdS)TestInvalidFamilyrc|t5tjdddddS#1swxYwYdS)Nz\\.\testrirBrr@rBrs rtest_invalid_familyz%TestInvalidFamily.test_invalid_familys


z
*
*	=	=&//<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	= AAAz skipped on non-Windows platformsc|t5tjdddddS#1swxYwYdS)Nz/var/test.piperJrs rtest_invalid_family_win32z+TestInvalidFamily.test_invalid_family_win32s


z
*
*	B	B&//0@AAA	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B	BrLN)	rrrsrtrCrurrKrrNrWrrrHrHsoX_U011==21=X BCCBBDCBBBrrHc@eZdZedZedZdZdS)	TestFlagsc^|ttjdSr)rrrvflagsrr7s  rrun_in_grandchildzTestFlags.run_in_grandchilds$		%	""#####rcddl}tjd\}}tj|j|f}||}|||ttj|f}t|
|dS)NrFrr)jsonrrrrTrrrrrrvrRprintr)rrVr5rrgrandchild_flagsrRs       rrun_in_childzTestFlags.run_in_childs#51111#3+@tLLL				6688									sy!!#34
djj     rcddl}d}tjtjdddd|g}||d\}}|||dS)NrzJfrom test._test_multiprocessing import TestFlags; TestFlags.run_in_child()rXz-Sz-Orr{)rVrZcheck_outputrvrrr_rh)rmrVprogrchild_flagsrXs      r
test_flagszTestFlags.test_flagssv+&
^T4tT:<<(,

4;;w3G3G(H(H%%&677777rN)rrrsrtrrTrYr^rWrrrPrPsW$$[$
!
![
!88888rrPc*eZdZedZdZdS)TestTimeoutsctjd|d|tj|}|d|dS)Nrrr)rr
rrrr@rF)rchildrr7s    r
_test_timeoutzTestTimeouts._test_timeoutsa
1




3



)0099		#

rctj}	tjdtjd\}}tjd}tj|j||j	f}|
|||
d||}||
d||t|tj|dS#tj|wxYw)	NrTrAF_INETr>rrr)rrgetdefaulttimeoutsetdefaulttimeoutrrr@rBrrcrrrrhrrGr$)rmold_timeoutparentrbrrr7s       rr8zTestTimeouts.test_timeoutsB.00	2$S)))+0===MFE*3393EEA't/A.3QY-?AAAA
GGIIIKKMMMV[[]]C000LLNNN88::DTYY[[#...JJLLL
GGIIIOOO$[11111F$[1111sEE00FN)rrrsrtrrcr8rWrrr`r`s<[22222rr`ceZdZdZdS)TestNoForkBombc8tj}tjtjtd}|dkrWtjj	
||\}}}||d|d|dStjj	
||\}}}||d||ddS)Nzmp_fork_bomb.pyrdrsRuntimeErrors123)rrMr?rrrrr@rrassert_python_failurerhrjrr)rmrwr)rcrrns      rtest_noforkbombzTestNoForkBomb.test_noforkbombs

-
/
/w||BGOOH557HII
<<<5KKDRTUULBSS#&&&MM/3/////<5FFtRPPLBSSZZ\\6222S#&&&&&rN)rrrsrtrnrWrrrkrks#
'
'
'
'
'rrkc*eZdZedZdZdS)TestForkAwareThreadLockcB|dkrXtj|j|dz
|f}||t|n,|ttj	|dS)Nrr)
rrrbrrr$rrr_afterfork_registry)rrr7rs    rrbzTestForkAwareThreadLock.childsq55'sy!T{KKKA
GGIIIJJLLLOOOOIIc$233444

rctjd\}}tj}t	tj}tj|jd|f}||	|
}t||||dS)NFrr)
rrrForkAwareThreadLockrrrrrbrrrr$assertLessEqual)rmr5rrold_sizernew_sizes       rrcz!TestForkAwareThreadLock.test_lock	s#E**1$&&t/00#4:QFCCC								6688QXx00000rN)rrrsrtrrbrcrWrrrprps>
[	1	1	1	1	1rrpc6eZdZdZdZedZdZdS)TestCloseFdscHtr%tjStj}g}|dkr/||t	j|}|dk/|D]}t	j||S)Nr)rrrdetachrTr?dupr)rmrto_closerDs    rget_high_socket_fdzTestCloseFds.get_high_socket_fds	=??))+++''))BHr''###VBZZr''

Irctr?tjtjtj|dStj|dS)N)r)rrrreSOCK_STREAMrr?)rmrs  rrzTestCloseFds.close,sI	M&.&*<RHHHNNPPPPPHRLLLLLrc	tj|tjtj}||ddS#t$r }||Yd}~dSd}~wwxYwr)rrfromfdrerrrre)rr7rrrs     r_test_closefdszTestCloseFds._test_closefds2s}	
b&.&2DEEA
GGIIIIIdOOOOO				IIaLLLLLLLLL	s*A
B!A<<Bcbtstjdtj\}}|}	tj|j||f}||	|
}t||	||	|	nB#|	||	|	wxYwtjdkr|
|ddSd}||t||jt"jkp
|j|k|dS)Nzrequires fd picklingrrdi6')r:rCrDrrr~rrrrrr$rMrjrrrrrwinerror)rmr
rrrrWSAENOTSOCKs       rtest_closefdzTestCloseFds.test_closefd<sz	<#$:;;;(-//

$
$
&
&
	't/B.4b\;;;A
GGIIILLNNN

AOOOJJrNNNLLNNNLLNNNN
JJrNNNLLNNNLLNNNN+--77MM!T"""""K!!!W---OOAGu{26J+5q
:
:
:
:
:s
A(C--?D,N)rrrsrtr~rrrrrWrrryrys\$[:::::rryceZdZeejejZedZ	e
jee
dddZedZe
jee
dddZdS)TestIgnoreEINTRcd}tjtj||d|}|||d|jzdS)NcdSrrWrframes  rr1z-TestIgnoreEINTR._test_ignore.<locals>.handlerarrreadyx)r4rrrr
CONN_MAX_SIZE)rr7r1rDs    r_test_ignorezTestIgnoreEINTR._test_ignore_ss			
fng...		'IIKK		!s0011111rrrctj\}}	tj|j|f}d|_||||dtj
dtj|j
tjtj
d|d||dtj
dtj|j
tj||d|jztj
d||dS#|wxYw)NrTrrir)rrrrrrrrhrrr
r?r@rr4rrrrrr4s    rtest_ignorezTestIgnoreEINTR.test_ignoreisd*/11j	't/@.8]<<<AAH
GGIIITYY[['222JsOOOGAE6>***JsOOOIIdOOOTYY[[$///JsOOOGAE6>***T__..t7I0IJJJJsOOO
FFHHHJJLLLLLDJJLLLLsFF::Gc>d}tjtj|tj5}||j|}|dddddS#1swxYwYdS)NcdSrrWrs  rr1z6TestIgnoreEINTR._test_ignore_listener.<locals>.handlerrrwelcome)r4rrr@rBrrrG)rr7r1rrs     r_test_ignore_listenerz%TestIgnoreEINTR._test_ignore_listeners			
fng...

'
0
0
2
2	aIIai   

A
FF9																		sABBBctj\}}	tj|j|f}d|_|||}tj	dtj|jtjtj	dtj|}||d||dS#|wxYw)NrTrr)rrrrrrrrrr
r?r@rr4rr@rFrhr)rmr7rrrrIs      rtest_ignore_listenerz$TestIgnoreEINTR.test_ignore_listeners*/11j	't/I.8]<<<AAH
GGIIIiikkGJsOOOGAE6>***JsOOO$/66w??FV[[]]I666
FFHHHJJLLLLLDJJLLLLsDD44E
N)rrrsrtmaxr
PIPE_MAX_SIZE
SOCK_MAX_SIZErrrrCrr3r4rrrrWrrrrZsC-w/DEEM22[2X335GHHIH,[X335GHHIHrrceZdZedZdZdZdZdZdZ	dZ
eje
jdkd	ed
dZedZed
ZdZdS)TestStartMethodcR|tjdSr)rrrMrSs  r_check_contextzTestStartMethod._check_contexts#		/24455555rc|d\}}||j|f}|||}|||||dS)NFrr)	rrrrrrrrhrM)rmrpr5rrchild_methods      r
check_contextzTestStartMethod.check_contextsxxux%%1KKt2!K>>								vvxx					s';';'='=>>>>>rcdD]}	tj|}n#t$rY$wxYw|||||||t|jd|t|jd||dS)NrdrKrrK)	rrRrBrhrMrjrirgr)rmmethodrps   rr6zTestStartMethod.test_contexts5		$		$F
%1&99



S1133V<<<MM#//++S111j#*>HHHj#*>EEEs####		$		$s
((c	tjd}n"#t$rtjdwxYw|td5|gdddddS#1swxYwYdS)Nrzforkserver should be availablez&module_names must be a list of stringsr)rrRrBrCrDrWrset_forkserver_preload)rmrps  rtest_context_check_module_typesz/TestStartMethod.test_context_check_module_typess	F!-l;;CC	F	F	F#$DEEE	F

#
#I/W
X
X	2	2&&yyy111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s6A99A=A=cvtjtd}tj}	dD]<}	tj|dn#t
$rY'wxYw|tj|tj}||||t|j
|||j
j
||t|dz
}>	tj|dn#tj|dwxYw||ddS)NrrTrbr)rrPRELOADrMrgrBrhrRrrrrlower
startswithrrr6)rmr
old_methodrrps     rtest_set_getzTestStartMethod.test_set_gets.w777$577
	E9

#4V4HHHHH!H  !A!C!CVLLL%133  !5!5!7!7@@@S		 2 8 8 : : E Ef M MNNNK(..00;;FCCEEE""?333


,ZtDDDDDO,ZtDDDDDq)))))s/FA
F
AFADFF ctj}tjdkr||dgdS||ddgkp|ddgkp|gdkp|gdkdS)Nr-rKrdr)rKrdr)rget_all_start_methodsrvrwrhr)rmmethodss  rtest_get_allzTestStartMethod.test_get_alls!799<7""Wwi00000OOG'88G#'88G#'F'F'FFG$'F'F'FF
H
H
H
H
Hrc(tjdkr|dtjtjtd}tj	j
|\}}}|}|}|
dks|dkr5t|t||ddSdS)Nrz*test only relevant for 'forkserver' methodz
mp_preload.pyokrz(failed spawning forkserver or grandchild)rrMrr?rrrrr@rrrr_rrWrf)rmr)rcrrns     rtest_preload_resourcesz&TestStartMethod.test_preload_resourcess+--==MMFGGGw||BGOOH55GG|1BB4HHCjjlljjll::<<43"99#JJJ#JJJII@AAAAA$-9rr-z*Only Spawn on windows so no risk of mixingavoids redundant testing.cdD]}tjd}tj|}|t|f}d}|t|5|dddn#1swxYwYdD]}tjD]}tj|}tj|}|t|f}||	dS)N)rKrrdrzA SemLock created in a fork)
rrRrrr!rWr0rrr)rmprocess_methodr process_ctxrrbqueue_methods       rtest_mixed_startmethodz&TestStartMethod.test_mixed_startmethodsq
6		N#/77==??E)5nEEK##;eX#FFA3G''g>>

			














4		L"1"G"I"I

'3LAAGGII-9.II''{%'JJ			
		s9BB	!B	c0|ddSrr)rr s  r_put_one_in_queuez!TestStartMethod._put_one_in_queues
		!rc|dtj|j|f}||dSrN)rrrrrr)rr r#s   r_put_two_and_nest_oncez&TestStartMethod._put_two_and_nest_oncesI
		!!)1FeXVVV

rctj}tj|j|f}||g}|s;|||;|	t|tddgdS)Nrrr)rrrrrrrrTrassertSetEqualr_)rmr r#rs    rtest_nested_startmethodz'TestStartMethod.test_nested_startmethod
s %''!)1LTYS[\\\

++--	(NN599;;'''++--	(
	
CLL#q!f++66666rN)rrrsrtrrrr6rrrrrCrurvrwrXrrrrrWrrrrs%66[6???
$
$
$222***,HHH
B
B
BX_S\W,ACC  !<==>=CC&[[77777rrr*cNeZdZdZdZdZdZdZedZ	dZ
dZd	S)
TestResourceTrackercJd}tjD]}||5|dkr
	ddd-tj\}}tjtjdd|	||g|gt
j
}tj|t|dd	
5}|
d}|
d}dddn#1swxYwYt!||||d|d
}	t'jt&j|	D]\}
	t!||#t,$r<}||jt0jt0jfYd}~nd}~wwxYw|jd}|jd	|}
|||
||d|zdddn#1swxYwYdS)Na+if 1:
            import time, os, tempfile
            import multiprocessing as mp
            from multiprocessing import resource_tracker
            from multiprocessing.shared_memory import SharedMemory

            mp.set_start_method("spawn")
            rand = tempfile._RandomNameSequence()


            def create_and_register_resource(rtype):
                if rtype == "semaphore":
                    lock = mp.Lock()
                    return lock, lock._semlock.name
                elif rtype == "shared_memory":
                    sm = SharedMemory(create=True, size=10)
                    return sm, sm._name
                else:
                    raise ValueError(
                        "Resource type {{}} not understood".format(rtype))


            resource1, rname1 = create_and_register_resource("{rtype}")
            resource2, rname2 = create_and_register_resource("{rtype}")

            os.write({w}, rname1.encode("ascii") + b"\n")
            os.write({w}, rname2.encode("ascii") + b"\n")

            time.sleep(10)
        )r*nooprXr)rr*)pass_fdsrr&T)rr{zA z< resource was leaked after a process was abruptly terminatedrz8resource_tracker: There appear to be 2 leaked {} objectszresource_tracker: %r: \[Errno)r&r(rr?piperZr[rvrrr\rrr]rr_r+rr/rr`rrrjrENOENTEINVALrrr)rmrr*r5rrrname1name2rbrrrnrVs              rtest_resource_trackerz)TestResourceTracker.test_resource_tracker#sR<&4$	P$	PEE**#
P#
PF??#
P#
P#
P#
P#
P#
P#
Pwyy1$cn%)4au1M1M&O/0c,6O===!T4000BAJJLL//1188AAEJJLL//1188AAEBBBBBBBBBBBBBBB!...


2222 /0E29;;A(6666"

agel/KLLL	hmmoo,,W55   &&,f!'#'#  h///  &F&NOOOG#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P#
P$	P$	PshJBJ=A3D<0J<EJEA"J'F87J8
G>	1G9	3J9G>	>BJJ	J	cddlm}|j}|@tj|t
jtj|t
jtj
5tjd|dddn#1swxYwY|j}tj||tjdtjd}tj
d5}tjd	|}||t)j|}~t-j|||r|t5|d
|d}	|t9|	jt<|dt?|	j vn#|t5|dddddS#1swxYwYdS)Nr_resource_tracker)rr;r,rKT)ralwaysrzresource_tracker: process died)! multiprocessing.resource_trackerrrr?r@r4rArwait_processrCrDrErrr
rrRrqr^r_rfrgrhrirrhrr
issubclasscategoryUserWarningrkmessage)
rmr
should_dierrrpall_warnrnrkthe_warns
          rcheck_resource_tracker_deathz0TestResourceTracker.check_resource_tracker_deathks	GFFFFF$?GC((( ????

$
&
&	/	/!(+++,,...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/ $
V
3)'22

$D
1
1
1	3X!(+++--//CKKMMMKKMMMS!!BJLLLbbdd###
3  X222#A;
8+<k J JKKK @#&x'7#8#8!9::::  X222%	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s%#)BBB<D=II

I
cF|tjddSrG)rr4rrs rtest_resource_tracker_sigintz0TestResourceTracker.test_resource_tracker_sigints ))&-?????rcF|tjddSrG)rr4r:rs rtest_resource_tracker_sigtermz1TestResourceTracker.test_resource_tracker_sigterms ))&.%@@@@@rcF|tjddSrK)rr4rArs rtest_resource_tracker_sigkillz1TestResourceTracker.test_resource_tracker_sigkills ))&.$?????rcddlm}||jd|fv}||z}||dS)Nrr)rrrr_check_aliver)r7rrreuseds    r_is_resource_tracker_reusedz/TestResourceTracker._is_resource_tracker_reusedshFFFFFF((***#'D#;6#00222		&rcddlm}||j}t	jd\}}t	j|j||f}||	}|
||||dS)NrrFrr)
rrrrrrrrrrrrr)rmrrr5rris_resource_tracker_reuseds       rtest_resource_tracker_reusedz0TestResourceTracker.test_resource_tracker_reusedsFFFFFF((***$#51111#4+K*+S
3
3
3				%&VVXX"	
								233333rcd}ddt|z
z}|t5tj||ddddS#1swxYwYdS)Nrrr)rrirBr&register)rmr*too_long_name_resources   rtest_too_long_name_resourcez/TestResourceTracker.test_too_long_name_resources !$c%jj(8!9


z
*
*	E	E%&<eDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	EsAAAN)rrrsrtrrrrrrPrrrrWrrrrsFPFPFPP#3#3#3J@@@AAA@@@\444$EEEEErrcZeZdZedZdZdZejj	dZ
dS)TestSimpleQueuec&|	|||||dS#|wxYwr)r/rrr_rs    r_test_emptyzTestSimpleQueue._test_emptys~	&IIekkmm$$$IIekkmm$$$##%%%%%##%%%%sAA::Bctj}tj}tj}tj|j|||f}d|_||||	|
||||
d||
d|||dS)NrTF)rSimpleQueuerrrrrrrr_r/rrhrr)rmr rrrs     r
test_emptyzTestSimpleQueue.test_emptys,+--)/11-355&#*=>






&&&  """'''d+++e,,,

&&&		rc|tj}||dSr)rrrrmr s  rrlzTestSimpleQueue.test_closes.+--









rctj}|||jj||jjdSr)rrrr_readerr9_writerrs  rtest_closedzTestSimpleQueue.test_closedsQ+--




,---
,-----rN)rrrsrtrrrrlr@rcpython_onlyrrWrrrrsl&&[&0
\.....rrceZdZdZdS)TestPoolNotLeakOnFailurecdgGfdd}|td5tjdt
j|}||	dddn#1swxYwY|
tdDdS)	Nrc6eZdZfdZfdZdZdZdZdS)RTestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcessc\d|_d|_d|_|dS)NzFake Process)r)rrrT)rmrOforked_processess  rr}z[TestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcess.__init__s2*	 $
!
 ''-----rcJdkrtddzd|_dS)NrManually induced OSErrorrr)rr)rmwill_fail_ins rrzXTestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcess.starts21$$!"<===!&


rcd|_dS)Nstoppingrrs rrz\TestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcess.terminate
s
'


rc.|jdkr	d|_dSdS)Nrstoppedrrs rrzWTestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcess.join
s":++!*DJJJ,+rc.|jdkp
|jdkS)Nrrrrs rrz[TestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.FailingForkProcess.is_aliveszY.J$*
2JJrN)rrrsrtr}rrrr)rrsrFailingForkProcessrsy
.
.
.
.
.
'
'
'
'
'
(
(
(
+
+
+
K
K
K
K
Krrrr)r)contextc3>K|]}|VdSrr)rrr#s  rrzITestPoolNotLeakOnFailure.test_release_unused_processes.<locals>.<genexpr>s.CCw  ""CCCCCCr)rWrrrrrCr	MagicMockrrrr@)rmrrrrs   @@rtest_release_unused_processesz6TestPoolNotLeakOnFailure.test_release_unused_processessY	K	K	K	K	K	K	K	K	K	K	K0
#
#G-G
H
H		$))!X]5L5L*6M6,6,)--A
GGIII
FFHHH																
	
CC2BCCCCC	E	E	E	E	EsA(B&&B*-B*N)rrrsrtrrWrrrrs($E$E$E$E$ErrceZdZ	ejjZdZdZe	dZ
e
ZdZdZ
e	dZdZe	dZd&d
Ze	dZd&dZe	d
Zd'dZdZe	dZdZe	dZdZe	dZdZe	dZd(dZdZe	dZ dZ!e	dZ"dZ#e	dZ$d Z%e	d!Z&d"Z'e	d#Z(d$Z)d%S))TestSyncManagerTypescx||_|jd|_dSr)
manager_classrrrrs rrzTestSyncManagerTypes.setUp6s4))++			rc|jK|jr2|j|j|jd|_d|_dSr)rrrrrrrs rrzTestSyncManagerTypes.tearDown;si9 TY%7%7%9%9 I!!!INN			rc,tjdSr)r
reap_childrenr's rrzTestSyncManagerTypes.setUpClassCsrcrt|jtj}t	jddD])}t
tjdkrdS*tj|z
}dt_	t	j
dtjd|dd	dS)
NrFerrorrT"multiprocessing.Manager still has  active children after .1f seconds)r$rrrrr`rrrenvironment_altered
print_warning)rm
start_timerrs    rwait_proc_exitz#TestSyncManagerTypes.wait_proc_exitIs	TY^%%
'5999	M	MA?24455::;!!J.B*.G'!#L%4%D%F%F#L#L;="K#L#L#L
M
M
M
M
Mrctj||f|_d|j_|j|||jjddS)NrTr)rrrrrr!rhr)rmworkerr%s   r
run_workerzTestSyncManagerTypes.run_workerZsj#+6HHH			+Q/////rc|||ddSNru)r/rrr%s  rrz TestSyncManagerTypes._test_eventas1	


		rc|j}|||j||ddSr&)rrr_r$rr/rmrOs  rrzTestSyncManagerTypes.test_eventhsLL  	(!,,,	u




rc.|dSrr^r's  r
_test_lockzTestSyncManagerTypes._test_locko




rr]ct|j|}||j|||t|jdSr)rrr$r,r_rir0rmlnamerOs   rrczTestSyncManagerTypes.test_lockss\(GDL%((**+++			,	22222rcV||dSrr^r_r's  r_test_rlockz TestSyncManagerTypes._test_rlocky 







rcvt|j|}||j|dSr)rrr$r3r/s   rrfzTestSyncManagerTypes.test_rlock~s8(GDL%((**(!,,,,,rc.|dSrr+r's  rroz$TestSyncManagerTypes._test_semaphorer-rrqct|j|}||j||dSr)rrr$ror_)rmsnamerOs   rrrz#TestSyncManagerTypes.test_semaphoresC(GDL%((**,a000			rc2|ddS)Nru)r8)rrrs rrvz+TestSyncManagerTypes.test_bounded_semaphores "455555rcV||dSrr2r's  r_test_conditionz$TestSyncManagerTypes._test_conditionr4rcn|j}||j|dSr)rrr$r;r)s  rtest_conditionz#TestSyncManagerTypes.test_conditions2L""$$,a00000rc.|dSr)r!r's  r
_test_barrierz"TestSyncManagerTypes._test_barriers			rcp|jd}||j|dSr)rrr$r?r)s  rr	z!TestSyncManagerTypes.test_barriers4L  ##*A.....rc>|5	ddddS#1swxYwYdSrrWr's  r
_test_poolzTestSyncManagerTypes._test_poolsq																				scr|jd}||j|dS)Nr^r)rrr$rBr)s  r	test_poolzTestSyncManagerTypes.test_pools6L**+++++rcdSrrWr's  r_test_queuez TestSyncManagerTypes._test_queuerrct|j|d}|d|d||j|dS)Nrrr)rrrr$rF)rmqnamerOs   r
test_queuezTestSyncManagerTypes.test_queuesX(GDL%((++	a	a(!,,,,,rc0|ddS)Nr))rJrs rtest_joinable_queuez(TestSyncManagerTypes.test_joinable_queues(((((rc`|||D]}dSr)rreverse)rr%rDs   r
_test_listzTestSyncManagerTypes._test_lists:
	





		A		rc|j}|d||j||t
|ddS)Nrr)rrrTr$rOrhrr)s  rrzTestSyncManagerTypes.test_lists\L	+++Q#####rcdSrrWr's  r
_test_dictzTestSyncManagerTypes._test_dictrGrc|j}d|d<||j||t|ddS)NrrVr)rrr$rRrhrr)s  rrzTestSyncManagerTypes.test_dictsVL%+++Q#####rc0|ddSrt)r_r's  r_test_valuez TestSyncManagerTypes._test_values	




rc|jdd}||j|||jd||ddS)NrRrr)rrr$rUrhrrr)s  rrWzTestSyncManagerTypes.test_valueslLsA&&(!,,,!$$$!$$$$$rcdSrrWr's  r_test_arrayz TestSyncManagerTypes._test_arrayrGrcv|jdddg}||j|dS)NrRrr)rrtr$rXr)s  rrwzTestSyncManagerTypes.test_arrays:LsQF++(!,,,,,rcdSrrWr's  r_test_namespacez$TestSyncManagerTypes._test_namespacerGrc|j}d|_d|_||j|dSr)rrrDrEr$r[r)s  rrz#TestSyncManagerTypes.test_namespaces@L""$$,a00000rNrh)rq)r)*rrrsrtrrrrrrrrrr!r$rrr,rcr3rfrorrrvr;r=r?r	rBrDrFrJrLrOrrRrrUrWrXrwr[rrWrrrrs*$,8M
  [ MMMM"000[[3333[----[
666[111[///[
,,,[)))		[	$$$++[+$$$[
%%%##[#---[11111rrc6eZdZeddZdS)TestNamedResourcezspawn specific test.ctj}|tj|t	|dd5}|t
jddddn#1swxYwYtj	|\}}}|
||ddS)NrrraW                import multiprocessing as mp
                ctx = mp.get_context('spawn')
                global_resource = ctx.Semaphore()
                def submain(): pass
                if __name__ == '__main__':
                    p = ctx.Process(target=submain)
                    p.start()
                    p.join()
            r)rrr^rrr/textwrapdedentrrrr_)rmrrrcrrns      r test_global_named_resource_spawnz2TestNamedResource.test_global_named_resource_spawns!	(&111
&#
0
0
0
	A
GGHO	%			
	
	

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	%5f==C	
#**W"5"566666s(A33A7:A7N)rrrsrtrXrcrWrrr^r^s:  !7887798777rr^c<eZdZdZeddZdS)MiscTestCasecXtj|ttjddgdS)NSUBDEBUGr)extranot_exported)rcheck__all__rrrs rtest__all__zMiscTestCase.test__all__"s=T?/:Q+5|*D	F	F	F	F	F	Frrctjdd\}}}||d|||ddS)Nrzif 1:
            import sys
            sys.executable = None
            assert "multiprocessing" not in sys.modules, "already imported!"
            import multiprocessing
            import multiprocessing.spawn  # This should not fail
rrr`)rrrhrr_)rmrcrrns    r,test_spawn_sys_executable_none_allows_importz9MiscTestCase.test_spawn_sys_executable_none_allows_import'sh%5
F

C	
Q#**W"5"566666rN)rrrsrtrkrXrmrWrrrere!sNFFF
! !<==77>=777rrec:eZdZedZedZdS)	BaseMixinctjjtjf|_dSr)rr#	_danglingrrdanglingr's rrzBaseMixin.setUpClass?s6'/9>>@@!+00224rctjttjjt|jdz
}|r(dtj_tj	d|d}ttjt|jdz
}|r(dtj_tj	d|d}dS)NrTDangling processes: rDangling threads: )r@rr]r_rr#rqrrrrr)rrrs   rrzBaseMixin.tearDownClassDs	
!!!/9::Sa=Q=QQ		F/3DL,!"D"D"DEEE	i)**Sa-A-AA	B/3DL,!"@w"@"@AAArN)rrrsrtrrrrWrrroro>sH44[4[rroceZdZdZejZejZeejZeej	Z	eej
Z
eejZeejZeej
Z
eejZeejZeejZeejZeejZeejZeejZeejZeejZeejZeejZeejZeejZdS)rrN)rrrsrtrrrr@rPrrrrrrrr)r]rerqrurrrrrtrRrsrWrrrrWszD%G +J"l?#BCCO!\/"@AAN"l?#BCCO!\/"@AAN<,--D<,--DL.//E L!>??M<,--DL.//E_677I#|O$DEE_677IL.//El?233GL.//EL.//E|O455H|O455HHHrrc,eZdZdZejZeejdZ	eejdZ
eejdZeejdZeejdZ
eejdZeejdZeejd	Zeejd
ZeejdZeejdZeejd
ZeejdZeejdZedZefdZefdZxZS)ManagerMixinrz
manager.Queuezmanager.JoinableQueuezmanager.Lockz
manager.RLockzmanager.Semaphorezmanager.BoundedSemaphorezmanager.Conditionz
manager.Eventzmanager.Barrierz
manager.Valuez
manager.Arrayzmanager.listzmanager.dictzmanager.Namespacec&|jj|i|Sr)rr)rrNrs   rrzManagerMixin.Poolss{....rcxttj|_dSr)rrrrrrs rrzManagerMixin.setUpClasss-
%-//rctj}tjddD](}t	tjdkrnP)tj|z
}dt_tjdtjd|dd	tj
|jd
krPdtj_tjdtj|j|j|jd|_t#dS)NrFrrTrrrrrz5Shared objects which still exist at manager shutdown:)rrrr`rrrrrrhrir_number_of_objectsr@_debug_inforrrr)rr rrrs    rrzManagerMixin.tearDownClasssy
^%%
'5999	M	MA?24455::;!!J.B*.G'!#L%4%D%F%F#L#L;="K#L#L#L
M
M
M	
;))++q0004DL,!#9
:
:
:!#+"9"9";";<<<
r)rrrsrtrrrroperator
attrgetterrr)r]rerqrurrrrrtrrrrrrrr_r`s@rrxrxps,D%GH(X(99::EH0X01HIIJJM8'H'7788DH(X(99::E,,-@AABBIx 3 34N O OPP,,-@AABBIH(X(99::Eh*x*+<==>>GH(X(99::EH(X(99::E8'H'7788D8'H'7788D,,-@AABBI//[/0000[0    [     rrxceZdZdZejjZejjZeejj	Z	eejj
Z
eejjZeejjZeejj
Z
eejjZeejjZeejjZeejjZeejjZeejjZeejjZeejjZeejjZeejjZdS)ThreadsMixinrN)rrrsrtrrdummyrr@rPrrrrrr)r]rerqrurrrrrtrWrrrrseD#+G &1J"l?#8#HIIO"l?#8#HIIO<-233D<-233DL.455E L!6!DEEM<-233DL.455E_2<==I#|O$9$JKK_2<==IL.455El?0899GL.455EL.455EEErrc	|d}t}hd}|D]4\}}t|tst	|t
r|t
ur;|jD]}	|r|	|kr|rd|	z|ddz}
||	dz}Gdd||tj	}|	dkrtjd	|}|
x|_|_
||_|||
<t	|tj	r2|rGd
d|t}|x|_|_
||_|||<6ddgdgfd}
fd}|
|d
<||d<dS)Nrr>rrrWithrMixinceZdZdS*install_tests_in_module_dict.<locals>.TempNrrWrrTemprsDrrrrceZdZdSrrrWrrrz*install_tests_in_module_dict.<locals>.Tempsrctjttjtjjd<tjd<tjdd<	tj	dn%#t$rtjdzwxYwtjdr7	tj}n"#t"$rtjdwxYwt%t'jtjt.dS)	NrrTr`rbz start method not supportedlinuxz1OSError raises on RLock creation, see issue 3111!)rrrr#_cleanuprqrrrMrgrBrCrDrvrwrrerrGrget_temp_dirrrr)rbrrold_start_methodrPs rsetUpModulez1install_tests_in_module_dict.<locals>.setUpModulesz.w777((***%-7<<>>)..00->$OOO	C,\FFFFF	C	C	C#L$A%BCC
C	C<""7++	;
;&,..
;
;
;'):;;;
;	 !!!"$$--i88888sB00"C5D		D(cfd}tjtjddttjjtdz
}|r*d}dtj_tj	d|d}ttjtdz
}|r*d}dtj_tj	d|d}|rtjdtj
dS)	NFrTrbrtrrur)r@rr]rrgr_r#rqrrrrr
r_cleanup_tests)
need_sleeprrrrrs   rtearDownModulez4install_tests_in_module_dict.<locals>.tearDownModules
	
!!!()9!)<DIIII/9::S!=M=MM		FJ/3DL,!"D"D"DEEE	i)**S!-=-==	BJ/3DL,!"@w"@"@AAA	JsOOO++-----rrr)globalsrrrrrr
capitalizerCTestCaserrequires_hashdigestrrrtrsr?)remote_globsrP	only_type
exclude_typesrslocal_globs	ALL_TYPESr)basetype_newnamerrrrrrrs `             @@rinstall_tests_in_module_dictrsCj)J))K333I!''))&&
d$%%	dL))	&|##+

-

-)!3!3  5#3#3#5#55QRR@#E$4$4$6$6$@A4(9I%%D>=eDDTJJD4;;
 1",(,W%%

-h/
0
0	&





tV


044DMD-(DO!%Ld|Hv9999999,......:#.L%3L!"""rSemLockzSemLock not availablerz
Linux onlyceZdZdZdS)SemLockTestscGddtj}dtj}|ddd|d}t|dS)NceZdZdS)3SemLockTests.test_semlock_subclass.<locals>.SemLockNrrWrrrr'rnrrztest_semlock_subclass-rrr2F)rrr?r
sem_unlink)rmrr)rs    rtest_semlock_subclassz"SemLockTests.test_semlock_subclass&st					&.			5	55GAq"dE**##D)))))rN)rrrsrtrrWrrrr"s#*****rr)r1NrG)rC
unittest.mockr rrarrrrvr?rhrrTr4rurrrrrZrr~rrrfrCtest.supportr@test.support.script_helperrrrrrrr	r

import_moduler*skip_if_broken_multiprocessing_synchronizerr+rmultiprocessing.dummymultiprocessing.heapmultiprocessing.managersrumultiprocessing.queuesrr
HAVE_SEND_HANDLEr:ImportErrormultiprocessing.sharedctypesrrrr	HAS_SHMEMrHAVE_ASAN_FORK_BUGrDrrr!r$r)r&r+rrrJrrrrrrr
HAVE_GETVALUErwrr/r4r@r,rctypesr8r9r:r;r?rGrXrrZryrrrrrrrrrrrZrkryrrrrrrr>rmrrrrrrrBrrrrdrhrjr{rrr*rrrrrrrrrrrrrrrrrr<rMrXrrnrrrrrerrrrrrrrrrr
rrr%rHrPr`rkrpryrrrurrrrr^rerorrxrrr3rrWrr<module>rs
				



								



















!!!!''''''&&&&&&""""""&&&&&&&&&&&&))))))((((((/=./ABB22444!!!!      )))))).MMMMM88888888------IIIIIMMMM
FFF_(
]
^
^^

	***7g000000555
O		
1#2 Hh#0 Hh(G,6???


	 ++++++###
BJ}%%EEEEE=
>)=============)))I$((E(Hzzz)
KKK2LLLLLX.LLL@00000F000"66
*
*
* L	8L	8L	8L	8L	8<L	8L	8L	8f     /)   ,Q7Q7Q7Q7Q7lQ7Q7Q7n$$$@@@@@@@@J
03@3@3@3@3@\3@3@3@lddddd\dddN	5W5W5W5W5W5W5W5W@&&&&&&&&.
66666F666rx1x1x1x1x1<x1x1x1|C3C3C3C3C3C3C3C3LM3M3M3M3M3M3M3M3fY/Y/Y/Y/Y/lY/Y/Y/~$$$


$$$$$F$$$%$$$$:$$$l!l!l!l!l!l!l!l!\&&&&&L&&&PB B B B B lB B B PIHHHHHHHHHV,,,,,I,,,								
56***	56;???	53-@@@4>4>4>4>4>\4>4>4>v
/////;///kI666KKKKKKKKK
{###
........b$#E**2222222222,2222+*22p599G/G/G/G/G/lG/G/G/R88888L888D.....,...`LLLLLLLLd]$JKK##E**@@@@@|@@+*LK@LbbbbbbbbP




9


5)5)5)5)5)5)5)5)pY HII##E**{J{J{J{J{J{J{J+*JI{JBuuuuuLuuux%%%%%h'%%%V+)+)+)+)+)<+)+)+)J66666\666DEEEEE)EEE&$#E**55555!55+*5B$#E*******x(**+**<


*'''''!2'''*gggggx gggZ
B
B
B
B
B)
B
B
B 88888!888@222228$222D'''''X&'''"11111h/111><:<:<:<:<:8$<:<:<:DAAAAAh'AAAF77777h'777D(=??]E]E]E]E]E(+]E]E??]E@0.0.0.0.0.h'0.0.0.f&E&E&E&E&Ex0&E&E&ER$#E**f1f1f1f1f18,f1f1+*f1R77777)7774777778$777:266666Y66628 8 8 8 8 98 8 8 v6666696662@E\4\4\4\4~WW-y999;RSS(,77*****8$**87TS***sf
C))C32C37
DDDDD#"D#'D,,D65D63GG
G
G/.G/