+
    BiM                     0   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
Ht ^ RIHt ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHu Ht ^RIHtHt ^R	IHtH t H!t! ]PD                  PG                  R
4      t$]PJ                  R 4       t&R t']$'       g   ^ RI(t(R t'R t)R t*RR lt+R t,RR lt-R t. ! R R] 4      t/ ! R R4      t0 ! R R]/]]4      t1 ! R R]/]Pd                  4      t3R t4]5R8X  d   ]	Pl                  ! 4        R# R# )     N)BrokenInterpreterPool)interpreters)_queues)support)	os_helper)script_helper)ExecutorTestmul)BaseTestCaseInterpreterPoolMixinsetup_modulewinc              #   
  "   \         P                  ! V 4      pV'       d   \         P                  ! V R 4        Rx  V'       d   \         P                  ! W4       R# R#   T'       d   \         P                  ! Y4       i i ; i5i)FN)osget_blockingset_blocking)fdblockings   & I/usr/lib/python3.14/test/test_concurrent_futures/test_interpreter_pool.pynonblockingr      sT     r"H
E"*OOB) 8OOB) s   6BA "B!B  Bc                    \        V 4      ;_uu_ 4        \        P                  ! 4       V,           p \        P                  ! W4      uuR R R 4       #   \         d     Mi ; i\        P                  ! 4       T8  d4    \        P                  ! Y4      uuR R R 4       #   \         d     KI  i ; i\        R4      h  + '       g   i     R # ; i)Nnothing to read)r   timer   readBlockingIOErrorTimeoutError)r   nbytestimeoutends   &&& r   read_file_with_timeoutr    '   s    	RiikG#	772& 
  		iikCwwr* 
 #  011 
sF   B;AA B;A  B;>BB-)B;,B--B;;C	c                     \         P                   ! V .. . V4      w  p pW9  d   \        R 4      h\        P                  ! W4      # )r   )selectr   r   r   )r   r   r   r_s   &&&  r   r    r    9   s>    --b"g61a;011wwr""    c                      R # N r(   r%   r   noopr)   @   s    r%   c                 @    ^ RI pVP                  ! WR,           4       R# )r   N    )r   write)r   msgr   s   && r   	write_msgr.   D   s    HHRur%   c                 t    R p\        V ^V4      pVR8w  d"   W#,          p\        P                  ! V ^4      pK(  V# )r%   r+   )r    r   r   )r   r   r-   chs   &&  r   read_msgr1   I   s7    
C	Aw	/B
+	WWR^Jr%   c                      \         # r'   )__name__r(   r%   r   get_current_namer4   R   s    Or%   c                     V ! V4      hr'   r(   )exctyper-   s   &&r   failr7   V   s    
#,r%   c                  <    \         P                  ! 4       w  rV.V O5# r'   )_interpretersget_current)extrainterpidr$   s   *  r   get_current_interpidr=   Z   s     ++-KHur%   c                   &   a  ] tR t^_t o R tRtV tR# )InterpretersMixinc                   aa \         P                  ! 4       w  ooV P                  V3R  l4       V P                  V3R l4       SS3# )c                  0   < \         P                  ! S 4      # r'   r   close)r#   s   r   <lambda>(InterpretersMixin.pipe.<locals>.<lambda>c       r%   c                  0   < \         P                  ! S 4      # r'   rB   )ws   r   rD   rE   d   rF   r%   )r   pipe
addCleanup)selfr#   rH   s   &@@r   rI   InterpretersMixin.pipea   s5    wwy1+,+,!tr%   r(   N)r3   
__module____qualname____firstlineno__rI   __static_attributes____classdictcell____classdict__s   @r   r?   r?   _   s      r%   r?   c                   ,   a  ] tR t^ht o R tR tRtV tR# )PickleShenanigansc                *    V^8X  d   \        R4      hR# )   gotchaN)RuntimeError)rK   values   &&r   __init__PickleShenanigans.__init__j   s    A:x(( r%   c                    V P                   R3# )rW   rW   )	__class__rK   s   &r   
__reduce__PickleShenanigans.__reduce__n   s    %%r%   r(   N)r3   rM   rN   rO   r[   ra   rP   rQ   rR   s   @r   rU   rU   h   s     )& &r%   rU   c                     a  ] tR t^rt o ]P
                  R 4       t]P
                  R 4       tR tR t	R t
R t]P
                  R 4       tR t]P
                  R	 4       tR
 tR tR tR t]P
                  R 4       tR tR tR tR t]P2                  ! R4      R 4       tR tR tR t]P<                  ! 4       R 4       tR t ]PB                  ! ]"! ]#R4      R4      R 4       t$Rt%V t&R# )InterpreterPoolExecutorTestc                   R pRpV P                  4       w  r4RV: RV RV: R2pRV R2p\        P                  ! VR4       V P                  VR7      p\        P                  ! V^d4      pVP                  V4      p	\        V4      p
V	P                  4        \        V4      pV P                  VR4       V P                  W4       V P                  W4       R	# )

   step: inits	   step: runz)
            import os
            msg = z
            os.write(z, z + b'\0')
            z, msg + b'\0')
            r+   initializerN)	rI   r   r,   executor_typer   submitr1   resultassertEqual)rK   msg1msg2r#   rH   
initscriptscriptexecutorbefore_initfut
after_init	after_runs   &           r   test_init_script,InterpreterPoolExecutorTest.test_init_scriptu   s    yy{( S4( #

S  	E%%*%=ggaooof%a[


QK	e,*)r%   c                    V P                  \        4      ;_uu_ 4        V P                  R RR7       RRR4       R#   + '       g   i     R# ; i)passrh   initargsNspam)assertRaises
ValueErrorri   r`   s   &r   test_init_script_args1InterpreterPoolExecutorTest.test_init_script_args   s5    z**6IF +***s	   <A	c                D   R pV P                  4       w  r#\        P                  ! VR4       V P                  \        W13R7      p\        P
                  ! V^d4      pVP                  \        ^
^
4       \        V4      pV P                  VR4       V P                  Wa4       R# )rf   r+   rz   N)
rI   r   r,   ri   r.   r   rj   r
   r1   rl   )rK   r-   r#   rH   rq   beforeafters   &      r   test_init_func*InterpreterPoolExecutorTest.test_init_func   s    yy{
E%%% & :CR$'$r%   c                n   R p\         P                  ! 4       ;_uu_ 4       p\        P                  ! VRV4      p\        P                  ! V4      pRRR4       XP
                  P                  R4      P                  4       pV P                  VP                  4       RR.4       R#   + '       g   i     L]; i)a  if True:
            from concurrent.futures import InterpreterPoolExecutor

            INITIALIZER_STATUS = 'uninitialized'

            def init(x):
                global INITIALIZER_STATUS
                INITIALIZER_STATUS = x
                INITIALIZER_STATUS

            def get_init_status():
                return INITIALIZER_STATUS

            if __name__ == "__main__":
                exe = InterpreterPoolExecutor(initializer=init,
                                              initargs=('initialized',))
                fut = exe.submit(get_init_status)
                print(fut.result())  # 'initialized'
                exe.shutdown(wait=True)
                print(INITIALIZER_STATUS)  # 'uninitialized'
           z	my-scriptNzutf-8initializeduninitialized)
r   temp_dirr   make_scriptassert_python_okoutdecodestriprl   
splitlines)rK   texttempdirfilenameresstdouts   &     r   test_init_with___main___global:InterpreterPoolExecutorTest.test_init_with___main___global   s    * !!W$00+tLH00:C " (..0**,/
 		 "!s   /B$$B4	c           	     "  a ^ oV3R lpV3R lp\         P                  ! \        P                  ! 4       4      ;_uu_ 4       pV P	                  VR7      ;_uu_ 4       pVP                  R 4      pRRR4       RRR4       V P                  RXP                  4       4       V P                  \        4      ;_uu_ 4        XP                  4        RRR4       \         P                  ! \        P                  ! 4       4      ;_uu_ 4       pV P	                  VR7      ;_uu_ 4       pVP                  R 4      pRRR4       RRR4       V P                  RVP                  4       4       V P                  \        4      ;_uu_ 4        XP                  4        RRR4       R#   + '       g   i     EL6; i  + '       g   i     ELB; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r   c                     < R # r'   r(   counts   r   init1<InterpreterPoolExecutorTest.test_init_closure.<locals>.init1   s    r%   c                     < S ^,          o R# )rW   Nr(   r   s   r   init2<InterpreterPoolExecutorTest.test_init_closure.<locals>.init2   s    QJEr%   rg   c                      R # r'   r(   r(   r%   r   rD   ?InterpreterPoolExecutorTest.test_init_closure.<locals>.<lambda>       dr%   NNotShareableErrorc                      R # r'   r(   r(   r%   r   rD   r      r   r%   )
contextlibredirect_stderrioStringIOri   rj   assertIngetvaluer~   r   rk   )rK   r   r   stderrrq   rs   r   s   &     @r   test_init_closure-InterpreterPoolExecutorTest.test_init_closure   sV   	%	 ''66&###66(ool3 7 7 	)6??+<=455JJL 6 ''66&###66(ool3 7 7 	)6??+<=455JJL 65 766 766 65 76 76 655s`   F0F	/F0<GG*!G	4G*G=F-'	F00G	G	G'"G**G:	=H	c           	     :    ! R  R4      pV! 4       p\         P                  ! \        P                  ! 4       4      ;_uu_ 4       pV P	                  VP
                  R7      ;_uu_ 4       pVP                  R 4      pRRR4       RRR4       V P                  RXP                  4       4       V P                  \        4      ;_uu_ 4        XP                  4        RRR4       R#   + '       g   i     Lp; i  + '       g   i     L{; i  + '       g   i     R# ; i)c                   &   a  ] tR t^t o R tRtV tR# )CInterpreterPoolExecutorTest.test_init_instance_method.<locals>.Spamc                    \         hr'   )NotImplementedErrorr`   s   &r   rh   OInterpreterPoolExecutorTest.test_init_instance_method.<locals>.Spam.initializer   s    ))r%   r(   N)r3   rM   rN   rO   rh   rP   rQ   rR   s   @r   Spamr      s     * *r%   r   rg   c                      R # r'   r(   r(   r%   r   rD   GInterpreterPoolExecutorTest.test_init_instance_method.<locals>.<lambda>   r   r%   Nr   )r   r   r   r   ri   rh   rj   r   r   r~   r   rk   )rK   r   r}   r   rq   rs   s   &     r   test_init_instance_method5InterpreterPoolExecutorTest.test_init_instance_method   s    	* 	* v''66&##0@0@#AAXool3 B 7 	)6??+<=455JJL 65 BA 76 655s0   %C6(C#	;C6D	#C3.C66D		D	c                P   V P                  R R7      pT;_uu_ 4        \        P                  ! \        P                  ! 4       4      ;_uu_ 4       pVP                  R4      pV P                  \        4      ;_uu_ 4        VP                  4        RRR4       RRR4       RRR4       XP                  4       pV P                  RV4       V P                  RV4       V P                  RV4       R#   + '       g   i     Lh; i  + '       g   i     Ls; i  + '       g   i     L~; i)raise Exception("spam")rg   ry   N ExecutionFailed: Exception: spamUncaught in the interpreter:zDThe above exception was the direct cause of the following exception:)ri   r   r   r   r   rj   r~   r   rk   r   r   rK   rq   r   rs   s   &   r   test_init_exception_in_script9InterpreterPoolExecutorTest.test_init_exception_in_script   s    %%2K%LX++BKKM::foof-&&'<==JJL > ; 
 "8&A4f=\	 >= ;: Xs;   2D/D	>C/D	D/C?:D	DDD%	c                J   V P                  \        \        R 3R7      pT;_uu_ 4        \        P                  ! \
        P                  ! 4       4      ;_uu_ 4       pVP                  \        4      pV P                  \        4      ;_uu_ 4        VP                  4        RRR4       RRR4       RRR4       XP                  4       pV P                  RV4       V P                  RV4       R#   + '       g   i     LV; i  + '       g   i     La; i  + '       g   i     Ll; i)r}   rz   Nr   r   )ri   r7   	Exceptionr   r   r   r   rj   r)   r~   r   rk   r   r   r   s   &   r   test_init_exception_in_func7InterpreterPoolExecutorTest.test_init_exception_in_func   s    %%$096/B & DX++BKKM::food+&&'<==JJL > ; 
 "8&A4f=	 >= ;: Xs;   2D3C?	C,C?	&D,C<7C?	?D
DD"	c                    R pV P                  4       w  r#RV R2pV P                  4       pVP                  V4      pVP                  4       p\	        V4      pV P                  VR4       V P                  VR4       R# )s   spamz,
            import os
            os.write(z0, __name__.encode('utf-8') + b'\0')
            s   __main__N)rI   ri   rj   rk   r1   rl   assertIs)	rK   r-   r#   rH   rp   rq   rs   r   r   s	   &        r   test_submit_script.InterpreterPoolExecutorTest.test_submit_script   sz    yy{S  %%'oof%jjl,c4 r%   c                  a R oV3R lpV3R lpV P                  4       pVP                  V4      pV P                  \        P                  4      ;_uu_ 4        VP                  4        RRR4       VP                  V4      pV P                  \        P                  4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     Lc; i  + '       g   i     R# ; i)Tc                     < S # r'   r(   r|   s   r   task1>InterpreterPoolExecutorTest.test_submit_closure.<locals>.task1  s    Kr%   c                     < S ^,          o S # r^   r(   r|   s   r   task2>InterpreterPoolExecutorTest.test_submit_closure.<locals>.task2  s    AIDKr%   Nri   rj   r~   r9   r   rk   )rK   r   r   rq   rs   r}   s   &    @r   test_submit_closure/InterpreterPoolExecutorTest.test_submit_closure  s    		
 %%'ooe$}>>??JJL @ ooe$}>>??JJL @?	 @? @??s   C)CC	C(	c                    ! R  R4      pV P                  4       pVP                  V4      pV P                  \        P                  4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)c                   &   a  ] tR tRt o R tRtV tR# )DInterpreterPoolExecutorTest.test_submit_local_instance.<locals>.Spami$  c                    R V n         R# TNrZ   r`   s   &r   r[   MInterpreterPoolExecutorTest.test_submit_local_instance.<locals>.Spam.__init__%  s	    !
r%   r   N)r3   rM   rN   rO   r[   rP   rQ   rR   s   @r   r   r   $  s     " "r%   r   Nr   )rK   r   rq   rs   s   &   r   test_submit_local_instance6InterpreterPoolExecutorTest.test_submit_local_instance#  sZ    	" 	" %%'ood#}>>??JJL @???s   A..A?	c                &    ! R  R4      pV! 4       pV P                  4       pVP                  VP                  4      pV P                  \        P
                  4      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)c                   &   a  ] tR tRt o R tRtV tR# )EInterpreterPoolExecutorTest.test_submit_instance_method.<locals>.Spami.  c                    R # )Tr(   r`   s   &r   runIInterpreterPoolExecutorTest.test_submit_instance_method.<locals>.Spam.run/  s    r%   r(   N)r3   rM   rN   rO   r   rP   rQ   rR   s   @r   r   r   .  s      r%   r   N)ri   rj   r   r~   r9   r   rk   )rK   r   r}   rq   rs   s   &    r   test_submit_instance_method7InterpreterPoolExecutorTest.test_submit_instance_method-  se    	 	 v%%'oodhh'}>>??JJL @???s   $A??B	c                    V P                  4       pVP                  \        4      pVP                  4       pV P	                  V\
        4       V P                  VR 4       R# )__main__N)ri   rj   r4   rk   rl   r3   assertNotEqual)rK   rq   rs   names   &   r   test_submit_func_globals4InterpreterPoolExecutorTest.test_submit_func_globals8  sJ    %%'oo./zz|x(D*-r%   c                   V P                   P                  R 4      pV P                  \        4      ;_uu_ 4       pVP	                  4        RRR4       V P                  \        XP                  4      \        4       V P                  \        VP                  4      R4       VP                  P                  pV P                  \        V4      \        P                  4       R FA  pV P                  \        VP                  P                  V4      \        \        V4      4       KC  	  V P                  VP                  P                  R4       R#   + '       g   i     EL; i)r   Nr}   r3   rN   rM   )rq   rj   r~   r   rk   r   type	exceptionrl   str	__cause__r   ExecutionFailedgetattrexcinfor-   rK   rs   capturedcauseattrs   &    r   test_submit_exception_in_script;InterpreterPoolExecutorTest.test_submit_exception_in_script@  s     mm""#<=y))XJJL *d8--.	:X//0&9"",,d5k<#?#?@>DWU]]%7%7>$Y57 ? 	**F3 *))s   EE	c                   V P                   P                  \        \        R 4      pV P	                  \        4      ;_uu_ 4       pVP                  4        RRR4       V P                  \        XP                  4      \        4       V P                  \        VP                  4      R 4       VP                  P                  pV P                  \        V4      \        P                  4       R FA  pV P                  \        VP                  P                  V4      \        \        V4      4       KC  	  V P                  VP                  P                   R 4       R#   + '       g   i     EL; i)r}   Nr   )rq   rj   r7   r   r~   rk   r   r   r   rl   r   r   r   r   r   r   r-   r   s   &    r   test_submit_exception_in_func9InterpreterPoolExecutorTest.test_submit_exception_in_funcO  s    mm""4F;y))XJJL *d8--.	:X//0&9"",,d5k<#?#?@>DWU]]%7%7>$Y57 ? 	**F3 *))s   EE)	c                   \         P                  ! 4       pV P                  ^4      p\        ^VP                  ,          4       F  pVP                  VP                  4       K   	  V P                  \        VP                  4      VP                  4       \        ^VP                  ,          4       F  pVP                  R4       K  	  VP                  RR7       R# )   NTwait)queuescreateri   range_max_workersrj   getrl   len_threads
put_nowaitshutdown)rK   blockerrq   is   &   r   test_saturation+InterpreterPoolExecutorTest.test_saturation\  s    --/%%a(rH1112AOOGKK( 3X../1F1FGrH1112At$ 3t$r%   c           	     B   \         P                  ! 4       p\         P                  ! 4       pR  p^
p. pV P                  4       ;_uu_ 4       p\        V4       F&  pVP	                  W7W4      pVP                  V4       K(  	  Tp	V	^ 8  d^   ^ p
\        V	4       F  p VP                  ^R7       V
^,          p
K!  	  W,          p	\        V
4       F  pVP                  R4       K  	  Kd   RRR4       R#   \        P                   d     Ks  i ; i  + '       g   i     R# ; i)c                 H    VP                  V 4       VP                  4        R # r'   r  r  taskidreadyr	  s   &&&r   r   6InterpreterPoolExecutorTest.test_blocking.<locals>.runv      V$KKMr%   r   N
r   r  ri   r  rj   appendr  r   
QueueEmptyr  rK   r  r	  r   numtasksfuturesrq   r
  rs   pendingdoner$   s   &           r   test_blocking)InterpreterPoolExecutorTest.test_blockingg  s     --/	
 !!X8_ooce=s# % GA+wA"		!	, 	 ( tA&&t, %  "! (22  "!!s1   
ADC1,:D1D
	D	D
	
DD	c           	     D   \         P                  ! 4       p\         P                  ! 4       pR  p^
p. pV P                  ^4      ;_uu_ 4       p\        V4       F&  pVP	                  W7W4      pVP                  V4       K(  	  Tp	V	^ 8  d^   ^ p
\        V	4       F  p VP                  ^R7       V
^,          p
K!  	  W,          p	\        V
4       F  pVP                  R4       K  	  Kd   RRR4       R#   \        P                   d     Ks  i ; i  + '       g   i     R# ; i)c                 H    VP                  V 4       VP                  4        R # r'   r  r  s   &&&r   r   KInterpreterPoolExecutorTest.test_blocking_with_limited_workers.<locals>.run  r  r%   r  Nr  r  s   &           r   "test_blocking_with_limited_workers>InterpreterPoolExecutorTest.test_blocking_with_limited_workers  s     --/	
 ""h8_ooce=s# % GA+wA"		!	, 	 ( tA&&t, %  #" (22  #""s1   ADC2-:D2D	D
D	DD	z(gh-117344: test is flaky without the GILc                r   V P                  4       pVP                  \        ^^4      P                  4        VP                  \        ^^4      P                  4        VP                  \        ^^4      P                  4        V P	                  \        VP                  4      ^4       VP                  RR7       R# )   Tr   N)ri   rj   r
   rk   rl   r  r  r  )rK   rq   s   & r   test_idle_thread_reuse2InterpreterPoolExecutorTest.test_idle_thread_reuse  s    %%'R#**,Q"))+Q#**,X../3t$r%   c                X   V P                   P                  \        ^ 4      4      p\        P                  pV P                  VR4      ;_uu_ 4       pVP                  4        RRR4       V P                  \        XP                  P                  4      R4       R#   + '       g   i     LA; i)r   zargs not shareableN	unpickled)rq   rj   rU   r   r   assertRaisesRegexrk   assertRegexr   r   r   )rK   rs   expectedcms   &   r   test_pickle_errors_propagate8InterpreterPoolExecutorTest.test_pickle_errors_propagate  sw     mm""#4Q#7811##H.BCCrJJL DR\\334kB DCs   BB)	c                .    \         P                  ! R 4      hznot applicableunittestSkipTestr`   s   &r   test_no_stale_references4InterpreterPoolExecutorTest.test_no_stale_references       011r%   c                .    \         P                  ! R 4      hr2  r3  r`   s   &r   test_free_reference/InterpreterPoolExecutorTest.test_free_reference  r8  r%   c                   \         P                  ! R 4      p\        P                  RV.p\        P
                  ! VRR7      pV P                  VP                  ^ VP                  P                  4       4       V P                  VP                  P                  4       R4       V P                  VP                  P                  4       R4       R# )aO  
        import sys
        # Set it to None to emulate the case when _interpreter is unavailable.
        sys.modules['_interpreters'] = None
        from concurrent import futures

        try:
            futures.InterpreterPoolExecutor
        except AttributeError:
            pass
        else:
            print('AttributeError not raised!', file=sys.stderr)
            sys.exit(1)

        try:
            from concurrent.futures import InterpreterPoolExecutor
        except ImportError:
            pass
        else:
            print('ImportError not raised!', file=sys.stderr)
            sys.exit(1)

        from concurrent.futures import *

        if 'InterpreterPoolExecutor' in globals():
            print('InterpreterPoolExecutor should not be imported!',
                  file=sys.stderr)
            sys.exit(1)
        z-cT)capture_output N)textwrapdedentsys
executable
subprocessr   rl   
returncoder   r   r   )rK   codecmdps   &   r   %test_import_interpreter_pool_executorAInterpreterPoolExecutorTest.test_import_interpreter_pool_executor  s        < ~~tT*NN3t4q!((//*;<*B/*B/r%   c                R    V P                  V P                  P                  R 4       R# )zInterpreterPoolExecutor-N)assertStartsWithrq   _thread_name_prefixr`   s   &r   test_thread_name_prefix3InterpreterPoolExecutorTest.test_thread_name_prefix  s    dmm??8	:r%   	_get_namezmissing _thread._get_namec                ~    R  pV P                  V P                  P                  V4      P                  4       R4       R# )c                  ,    ^ RI p V P                  ! 4       # )r   N)_threadrO  )rR  s    r   get_thread_nameaInterpreterPoolExecutorTest.test_thread_name_prefix_with_thread_get_name.<locals>.get_thread_name  s    $$&&r%   NInterpreterPool)rK  rq   rj   rk   )rK   rS  s   & r   ,test_thread_name_prefix_with_thread_get_nameHInterpreterPoolExecutorTest.test_thread_name_prefix_with_thread_get_name  s4    	' 	dmm22?CJJL=	?r%   r(   N)'r3   rM   rN   rO   r4  expectedFailurerv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r#  r   requires_gil_enabledr'  r/  r6  r:  requires_subprocessrH  rM  
skipUnlesshasattrrR  rV  rP   rQ   rR   s   @r   rd   rd   r   sK     * *2 G G%@,  
> ! ! &	. 4 44	%)-V!-F !!"LM% N%C22   "$0 #$0L: +68ST? U?r%   rd   c                   `   a a ] tR tRt o]R 4       tV 3R ltV 3R ltR tR t	R t
RtVtV ;t# )	AsyncioTesti  c                T    \         P                  ! 4       pV P                  R  4       R# )c                  @    \         P                  P                  R 4      # r'   )asyncioevents_set_event_loop_policyr(   r%   r   rD   (AsyncioTest.setUpClass.<locals>.<lambda>  s    GNN$I$I$$Or%   N)r   maybe_get_event_loop_policyaddClassCleanup)clspolicys   & r   
setUpClassAsyncioTest.setUpClass  s!     446OPr%   c                   <a  \         SS `  4        \        P                  ! 4       S n        S P                  S P                  4       S P                  4       S n        S P                  V 3R  l4       R# )c                  8   < S P                   P                  4       # r'   )rq   r  r`   s   r   rD   #AsyncioTest.setUp.<locals>.<lambda>  s     6 6 8r%   N)	supersetUpra  new_event_looploopset_event_loopri   rq   rJ   rK   r_   s   fr   ro  AsyncioTest.setUp  sK    **,	DII&**,89r%   c                   < V P                   P                  4       '       g!   \        P                  ! V P                   4       V P	                  4        \
        P                  ! 4        \        SV `!  4        R # r'   )	rq  	is_closedtestasyncio_utilsrun_briefly
doCleanupsr   
gc_collectrn  tearDownrs  s   &r   r{  AsyncioTest.tearDown  sI    yy""$$))$))4r%   c                   \         P                  ! 4       w  r\        pV P                  P	                  V P
                  VR 4      pV P                  P                  V4      w  rVV P                  VR 4       V P                  WQ4       R# )yoN)	r9   r:   r=   rq  run_in_executorrq   run_until_completerl   r   )rK   
unexpectedr$   funcrs   r<   r   s   &      r   test_run_in_executor AsyncioTest.test_run_in_executor$  sg    %113
#ii''tTB		44S9d#H1r%   c                  a V P                  4       pR oV3R lp\        P                  pV P                  P	                  V P
                  VR4      pVP                  4        V P                  P                  V P                  P                  4       4       V P                  P                  4        W P                  n
        W P                  n        \        P                  ! R4       V P                  S4       R# )Fc                     < R oR# r   r(   )argscalleds   *r   patched_call_soonBAsyncioTest.test_run_in_executor_cancel.<locals>.patched_call_soon3  s    Fr%   g?g?N)ri   r   sleeprq  r  rq   cancelr  shutdown_default_executorrC   	call_sooncall_soon_threadsafeassertFalse)rK   rq   r  r  rs   r  s   &    @r   test_run_in_executor_cancel'AsyncioTest.test_run_in_executor_cancel.  s    %%'	 zzii''tTB

		$$		335	7		/		):		&

3 r%   c                   \         P                  ! 4       w  rV P                  P                  V P                  4       V P                  P                  R \        4      pV P                  P                  V4      w  pV P                  WA4       R # r'   )	r9   r:   rq  set_default_executorrq   r  r=   r  r   )rK   r  r$   rs   r<   s   &    r   test_default_executor!AsyncioTest.test_default_executorB  sc    %113
		&&t}}5ii''.BCII005	H1r%   )rq   rq  )r3   rM   rN   rO   classmethodri  ro  r{  r  r  r  rP   rQ   __classcell__)r_   rS   s   @@r   r^  r^    s7     
Q 
Q:2!(2 2r%   r^  c                      \        4        R # r'   )r   r(   r%   r   setUpModuler  L  s    Nr%   r   )g      $@r'   )7rR  ra  r   r   r   rC  rA  r?  r   r4  concurrent.futures.interpreterr   
concurrentr   concurrent.interpretersr   r   r9   testr   test.supportr   r   test.test_asyncio.utilstest_asyncioutilsrw  rq   r	   r
   utilr   r   r   platform
startswithWINDOWScontextmanagerr   r    r"   r)   r.   r1   r4   r7   r=   r?   rU   rd   TestCaser^  r  r3   mainr(   r%   r   <module>r     s      	 	  
    @ # 5   " & 3 3 ' B B ,,
!
!%
( * *2  #	

, & &Q?|\Q?fD2#%6%?%? D2N zMMO r%   