
    vKg                        S SK Jr  S SKrS SKJrJr  S SKrS SKrS SKJ	r	  SSK
Jr  SSKJrJrJr  SSKJr  \(       a  S S	KJr  SS
 jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrSS jrg)    )annotationsN)TYPE_CHECKINGNoReturn)RaisesGroup   )_core)_signal_handlerget_pending_signal_countopen_signal_receiver)signal_raise)	FrameTypec                   #    [         R                  " [         R                  5      n [        [         R                  5       n[	        [         R                  5        [	        [         R                  5        [
        R                  " 5       I S h  vN   [	        [         R                  5        [
        R                  " 5       I S h  vN   U  S h  vN nU[         R                  :X  d   e  [        U5      S:X  d   e[	        [         R                  5        U  S h  vN nU[         R                  :X  d   e  [        U5      S:X  d   e S S S 5        [        R                  " [        5         WR                  5       I S h  vN   S S S 5        [         R                  " [         R                  5      U L d   eg  GN( N N
 N N
 N! , (       d  f       N= f NT! , (       d  f       NX= f7f)Nr   )signal	getsignalSIGILLr   r   r   wait_all_tasks_blockedr
   pytestraisesRuntimeError	__anext__)origreceiversignums      X/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/trio/_tests/test_signals.pytest_open_signal_receiverr      sT    FMM*D	fmm	, 	V]]#V]]#**,,,V]]#**,,,$ 	&V]]***'1Q666V]]#$ 	&V]]***'1Q666! 
-" 
|	$  """ 
%FMM*d222 	-,	H
	H 
-	,$ 	# 
%	$s   >G$ AG F35G F6G F:F8F:AG F>F<F>)G "G$(G<G=G2G$3G 6G 8F::G <F>>G  
G
G$G
G!G$c                 v  #    [         R                  " [         R                  5      n [        R                  " [
        SS9   [        [         R                  S5          S S S 5        S S S 5        [         R                  " [         R                  5      U L d   eg ! , (       d  f       N@= f! , (       d  f       NI= f7f)Nz2(signal number out of range|invalid signal value)$matchi )r   r   r   r   r   
ValueErrorr   r   s    r   >test_open_signal_receiver_restore_handler_after_one_bad_signalr!   +   sz     FMM*D	B
 "&--9 :	
 FMM*d222 :9	
 
s5   >B9 B(BB(%2B9
B%	!B((
B62B9c                    #    [         R                  " [        SS9   [        5           S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f7f)NzNo signals were providedr   )r   r   	TypeErrorr        r   $test_open_signal_receiver_empty_failr&   7   s;     	y(B	C!# $ 
D	C## 
D	Cs/   AA:A	A
A	A
AAc                 ,  #    [         R                  " [         R                  5      n [        [         R                  [         R                  5          S S S 5        [         R                  " [         R                  5      U L d   eg ! , (       d  f       N8= f7fN)r   r   r   r   r    s    r   @test_open_signal_receiver_restore_handler_after_duplicate_signalr)   =   sZ     FMM*D	fmmV]]	; 
< FMM*d222 
<	;s   ABB2B
BBc                    #    SS jn [         R                  " [        5         [        R                  R                  [        R                  U 5      I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nc                 t   #    [        [        R                  5          S S S 5        g ! , (       d  f       g = f7fr(   )r   r   SIGINTr$   r%   r   naughty0test_catch_signals_wrong_thread.<locals>.naughtyF   s     !&--0 100s   8'	8
58returnNone)r   r   r   trio	to_threadrun_syncrun)r-   s    r   test_catch_signals_wrong_threadr6   E   sI      
|	$nn%%dhh888 
%	$8 
%	$s.    A52A$A"A$	A5"A$$
A2.A5c            	       #    [        [        R                  5         [        [        R
                  5       n [        R                  " 5        IS h  vN nUR                  U R                  5        UR                  U R                  5        S S S 5      IS h  vN   S S S 5        S S S 5        g  N[ N! , IS h  vN  (       d  f       N,= f! , (       d  f       N5= f! , (       d  f       g = f7fr(   )	r   r2   BusyResourceErrorr   r   r   open_nursery
start_soonr   )r   nurserys     r   "test_open_signal_receiver_conflictr<   N   s     	T++	,!&--0H((**g""8#5#56""8#5#56 +* 1 
-	,**** 10 
-	,s{   C,CC
B,
C
7B0C
B.C
C#	C,,C
.C
0C6B97CC


C	C
C)%C,c                    #    [         R                  " 5       n [        R                  " 5       nUR	                  U R
                  SS9  U R                  5       I S h  vN   g  N7f)NT)
idempotent)r2   Eventr   current_trio_tokenrun_sync_soonsetwait)evtokens     r   +wait_run_sync_soon_idempotent_queue_barrierrF   X   sB     	B$$&E	40
'')OOs   AA"A A"c                 ,  #    [        [        R                  [        R                  5       n  [	        [        R
                  " [        R                  5      5        S n[        S5       H  n[        [        R                  5        [        [        R                  5        [        5       I S h  vN   Uc  U R                  5       I S h  vN nMd  U R                  5       I S h  vN nU[        R                  [        R                  4;   d   eX1:w  d   eUnM     [        U 5      S:w  a)  U R                  5       I S h  vN   [        U 5      S:w  a  M)  S S S 5        g  N N N| N$! [         a    SS KnUR                  5          N1f = f! , (       d  f       g = f7f)N
   r   )r   r   r   SIGFPEprintr   ranger   rF   r   r
   BaseException	traceback	print_exc)r   previous_gotrM   s        r   'test_open_signal_receiver_no_starvationrR   _   s1     
fmmV]]	;x	"&""6==12H2YV]]+V]]+ACCC#%-%7%7%99H ( 2 2 44C6==&--"@@@@?*?"H  +849((*** +849! 
<	; D94 + 	" !	"% 
<	;s   )FFA<E)E*EEEEAE8E9E	FEEEEF =F?F  F
FFc                 
  ^#    [        5       mSU4S jjn [        S5        [        [        R                  [        R
                  1U 5         [        [        R                  [        R
                  5       n[        [        R                  5        [        [        R
                  5        S S S 5        [        5       I S h  vN   S S S 5        T[        R                  [        R
                  1:X  d   eTR                  5         [        S5        [        [        R                  [        R
                  1U 5         [        [        R                  [        R
                  5       n[        [        R                  5        [        [        R
                  5        [        5       I S h  vN   [        U5      S:X  d   e S S S 5        S S S 5        T[        R                  [        R
                  1:X  d   eTR                  5         [        S5        [        [        R                  1[        R                  5         [        [        R                  5       n[        [        R                  5        S S S 5        [        5       I S h  vN   S S S 5        [        S5        [        [        R                  1[        R                  5         [        [        R                  5       n[        [        R                  5        [        5       I S h  vN   [        U5      S:X  d   e S S S 5        S S S 5        S	S jn[        [        R                  [        R
                  1U5         [        R                  " [        5       n[        [        R                  [        R
                  5       n[        [        R                  5        [        [        R
                  5        [        5       I S h  vN   [        U5      S:X  d   e S S S 5        S S S 5        WR                  nUR                   S   1n[#        UR$                  [        5      (       d   eUR'                  UR$                  R                   S   5        U[        R                  [        R
                  1:X  d   e S S S 5        g ! , (       d  f       GN= f GN! , (       d  f       GN= f GN! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f GNx! , (       d  f       GN}= f GN! , (       d  f       GN= f! , (       d  f       GN= f GNX! , (       d  f       GNK= f! , (       d  f       GNU= f! , (       d  f       g = f7f)
Nc                (   > TR                  U 5        g r(   )add)signoframedelivered_directlys     r   direct_handlerAtest_catch_signals_race_condition_on_exit.<locals>.direct_handler   s    u%r%      r         c                    [        U 5      er(   )r   )r   rW   s     r   raise_handler@test_catch_signals_race_condition_on_exit.<locals>.raise_handler   s    6""r%   r   )rV   intrW   FrameType | Noner0   r1   )r   ra   rW   rb   r0   r   )rB   rJ   r	   r   r   rI   r   r   rF   clearr
   SIG_IGNr   r   r   valueargs
isinstance__context__rU   )rY   r   r_   excinfoexcsignumsrX   s         @r   )test_catch_signals_race_condition_on_exitrl   ~   sf    #&5& 
!H 
&--7	H!&--?8'' @ :;;;	 
I
 &--!????	!H 
&--7	H!&--?8''=???+H5:::	 @ 
I &--!???? 
!H	&--&..	9!&--0H' 19;;; 
: 
!H	&--&..	9!&--0H'=???+H5::: 1 
:# 
&--7	G]]<(G%fmmV]]CxV]]+V]]+ACCC/9Q>>>	 D ) mm88A;-#//<8888COO((+,6==&--8888 
H	GS @? 	<	 
I	H @ @? 
I	H 10; 
:	9 @ 10 
:	9" D DC )( 
H	Gsa  AU#)R$43R'R$<R!=R$A3U#4)SA R9R6R94S<A2U#.S2S"S27S/8S2<<U#8T'T9T:TT7U#U*)U A T.T+
T.*U 2BU	U#
R		R$$
R3.U#6R99
S	S
SU#
S,	'	S22
T<U#T
T	T
T(#U#+T..
T=8U  
U	
U
U U#r/   )
__future__r   r   typingr   r   r   r2   trio.testingr    r   _signalsr	   r
   r   _utilr   typesr   r   r!   r&   r)   r6   r<   rF   rR   rl   r$   r%   r   <module>rt      sV    "  *   $  V V  30	3397">>9r%   