+
    Bi-	                     |    ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIt^t	Rt
^t ! R R]P                  4      tR# )    N)support)threading_helperg      ?c                   >   a  ] tR t^t o R tR tR tR tR tRt	V t
R# )ForkWaitc                d    \         P                  ! 4       V n        / V n        ^ V n        . V n        R# )r   N)r   threading_setup_threading_keyalivestopthreads)selfs   &%/usr/lib/python3.14/test/fork_wait.pysetUpForkWait.setUp   s(    .>>@
	    c                    ^V n         V P                   F  pVP                  4        K  	  RpV P                  P                  4        \        P
                  ! V P                  !   R# )   N)r   r   joinclearr   threading_cleanupr	   )r   threads   & r   tearDownForkWait.tearDown   sI    	llFKKM #**D,?,?@r   c                    V P                   '       g@   \        P                  ! 4       V P                  V&    \        P
                  ! \        4       KQ  R #   \         d     Ka  i ; i)N)r   osgetpidr
   timesleep
SHORTSLEEPOSError)r   ids   &&r   f
ForkWait.f(   sH    )))YY[DJJrN

:&   s   A A#"A#c               4    \         P                  ! WR 7       R# )exitcodeN)r   wait_process)r   cpidr&   s   &&$r   	wait_implForkWait.wait_impl0   s    T5r   c                   \        \        4       FQ  p\        P                  ! V P                  V3R 7      pVP                  4        V P                  P                  V4       KS  	  \        P                  ! \        P                  4       F#  p\        V P                  4      \        8  g   K#   M	  \        V P                  P                  4       4      pV P                  V\!        \        \        4      4      4       V P                  P#                  4       p\$        P&                  ! \(        RR7      ;_uu_ 4        \*        P,                  ! 4       ;p^ 8X  dp   \.        P0                  ! \2        4       ^ pV P                   F,  pV P                  V,          WX,          8w  g   K#  V^,          pK.  	  \*        P4                  ! V4       MV P7                  V^ R7       RRR4       R#   + '       g   i     R# ; i))targetargsignore)categoryactionr%   N)rangeNUM_THREADS	threadingThreadr"   startr   appendr   sleeping_retrySHORT_TIMEOUTlenr
   sortedkeysassertEquallistcopywarningscatch_warningsDeprecationWarningr   forkr   r   	LONGSLEEP_exitr)   )	r   ir   _aprefork_livesr(   nkeys	   &        r   	test_waitForkWait.test_wait3   sR   {#A%%TVV1$?FLLNLL' $ ''(=(=>A4::+- ? 4::??$%D{!345

) $$.@,46 6	!a'

9%::Czz#-*<<Q &  ta06 6 6 6s   9A#G"!7G""G3	)r	   r
   r   r   N)__name__
__module____qualname____firstlineno__r   r   r"   r)   rK   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s$     A61 1r   r   )r   r   unittestr3   testr   test.supportr   r?   rC   r   r2   TestCaser    r   r   <module>rY      s<        )  	
91x   91r   