Ë
    _§1hN  ã                  ó¼   — d dl mZ d dlZd dlmZmZ d dlZd dlZd dlm	Z	 ddl
mZ ddlmZmZmZ erd dlmZ dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)é    )ÚannotationsN)ÚTYPE_CHECKINGÚNoReturn)ÚRaisesGroupé   )Ú_core)Ú_signal_handlerÚget_pending_signal_countÚopen_signal_receiver)Ú	FrameTypec               ƒ  óô  K  — t        j                  t         j                  «      } t        t         j                  «      5 }t        j                  t         j                  «       t        j                  t         j                  «       t        j                  «       ƒ d {  –—†  t        j                  t         j                  «       t        j                  «       ƒ d {  –—†  |2 3 d {  –—† }|t         j                  k(  sJ ‚ t        |«      dk(  sJ ‚t        j                  t         j                  «       |2 3 d {  –—† }|t         j                  k(  sJ ‚ t        |«      dk(  sJ ‚	 d d d «       t        j                  t        «      5  j                  «       ƒ d {  –—†  d d d «       t        j                  t         j                  «      | u sJ ‚y 7 �Œ47 Œ÷7 Œî6 ŒØ7 Œž6 Œˆ# 1 sw Y   ŒxxY w7 ŒM# 1 sw Y   ŒLxY w­w)Nr   )ÚsignalÚ	getsignalÚSIGILLr   Úraise_signalr   Úwait_all_tasks_blockedr
   ÚpytestÚraisesÚRuntimeErrorÚ	__anext__)ÚorigÚreceiverÚsignums      úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_signals.pyÚtest_open_signal_receiverr      sŒ  è ø€ Ü×ÑœFŸM™MÓ*€DÜ	œfŸm™mÓ	,ð 7°ô 	×ÑœFŸM™MÔ*Ü×ÑœFŸM™MÔ*Ü×*Ñ*Ó,×,Ð,Ü×ÑœFŸM™MÔ*Ü×*Ñ*Ó,×,Ð,Ø$÷ 	ð 	�&ØœVŸ]™]Ò*Ð*Ð*ØÜ'¨Ó1°QÒ6Ð6Ð6Ü×ÑœFŸM™MÔ*Ø$÷ 	ð 	�&ØœVŸ]™]Ò*Ð*Ð*ØÜ'¨Ó1°QÒ6Ð6Ñ6÷!7ô" 
�‰”|Ó	$ñ #Ø× Ñ Ó"×"Ð"÷#ä×ÑœFŸM™MÓ*¨dÑ2Ð2Ñ2ð 	-ùà,øð	ø˜Høð
	ø˜Hø÷7ð 7úð$ 	#ø÷#ð #üs´   ‚=G8¿AGÂGÂ>GÃGÃGÃ#GÃ'GÃ(GÃ+AGÄ7GÄ;GÄ<GÄ?'GÅ'!G8ÆG,ÆG*ÆG,Æ!0G8ÇGÇGÇGÇGÇGÇGÇG'Ç#G8Ç*G,Ç,G5Ç1G8c               ƒ  ó`  K  — t        j                  t         j                  «      } t        j                  t
        d¬«      5  t        t         j                  d«      5  	 d d d «       d d d «       t        j                  t         j                  «      | u sJ ‚y # 1 sw Y   Œ9xY w# 1 sw Y   Œ=xY w­w)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!   *   s‡   è ø€ Ü×ÑœFŸM™MÓ*€DÜ	�‰ÜØCô
ñ ô "¤&§-¡-°Ó9ñ 	Ø÷	÷	ô ×ÑœFŸM™MÓ*¨dÑ2Ð2Ñ2÷	ð 	ú÷	ð üs5   ‚?B.ÁB"ÁBÁB"Á&0B.ÂB	ÂB"Â"B+Â'B.c                 ó¤   — t        j                  t        d¬«      5  t        «       5  	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NzNo signals were providedr   )r   r   Ú	TypeErrorr   © ó    r   Ú$test_open_signal_receiver_empty_failr&   6   sI   € Ü	�‰”yÐ(BÔ	Cñ Ü!Ó#ñ 	Ø÷	÷ð ÷	ð 	ú÷ð ús   œA§:©AºA	¿AÁAc               ƒ  ó  K  — t        j                  t         j                  «      } t        t         j                  t         j                  «      5  	 d d d «       t        j                  t         j                  «      | u sJ ‚y # 1 sw Y   Œ1xY w­w©N)r   r   r   r   r    s    r   Ú@test_open_signal_receiver_restore_handler_after_duplicate_signalr)   <   sb   è ø€ Ü×ÑœFŸM™MÓ*€DÜ	œfŸm™m¬V¯]©]Ó	;ñ Ø÷ô ×ÑœFŸM™MÓ*¨dÑ2Ð2Ñ2÷ð üs   ‚ABÁB Á0BÂ B	ÂBc               ƒ  óà   K  — dd„} t        j                  t        «      5  t        j                  j                  t        j                  | «      ƒ d {  –—†  d d d «       y 7 Œ# 1 sw Y   y xY w­w)Nc               “  ój   K  — t        t        j                  «      5  	 d d d «       y # 1 sw Y   y xY w­wr(   )r   r   ÚSIGINTr$   r%   r   Únaughtyz0test_catch_signals_wrong_thread.<locals>.naughtyE   s)   è ø€ Ü!¤&§-¡-Ó0ñ 	Ø÷	÷ 	ñ 	üs   ‚3œ'ž	3§0¬3©ÚreturnÚNone)r   r   r   ÚtrioÚ	to_threadÚrun_syncÚrun)r-   s    r   Útest_catch_signals_wrong_threadr5   D   sT   è ø€ óô 
�‰”|Ó	$ñ 9Ü�n‰n×%Ñ%¤d§h¡h°Ó8×8Ð8÷9ð 9Ø8ø÷9ð 9üs.   ‚A. 2A"ÁA ÁA"Á	A.Á A"Á"A+Á'A.c            	   ƒ  ó¼  K  — t        t        j                  «      5  t        t        j
                  «      5 } t        j                  «       4 ƒd {  –—† }|j                  | j                  «       |j                  | j                  «       d d d «      ƒd {  –—†  d d d «       d d d «       y 7 Œ[7 Œ# 1 ƒd {  –—†7  sw Y   Œ'xY w# 1 sw Y   Œ+xY w# 1 sw Y   y xY w­wr(   )	r   r1   ÚBusyResourceErrorr   r   r   Úopen_nurseryÚ
start_soonr   )r   Únurserys     r   Ú"test_open_signal_receiver_conflictr;   M   s¶   è ø€ Ü	”T×+Ñ+Ó	,ñ 7Ü!¤&§-¡-Ó0ð 	7°HÜ×(Ñ(Ó*÷ 7ð 7¨gØ×"Ñ" 8×#5Ñ#5Ô6Ø×"Ñ" 8×#5Ñ#5Ô6÷7÷ 7÷	7÷7ð 7ð7øð 7ø÷ 7÷ 7ñ 7ú÷	7ð 	7ú÷7ð 7üs{   ‚CœC¶CÁB+
ÁCÁ7B/Â
CÂB-ÂCÂCÂ"	CÂ+CÂ-CÂ/CÂ5B8Â6CÂ=CÃC	Ã	CÃCÃCc               ƒ  óÊ   K  — t        j                  «       } t        j                  «       }|j	                  | j
                  d¬«       | j                  «       ƒ d {  –—†  y 7 Œ­w)NT)Ú
idempotent)r1   ÚEventr   Úcurrent_trio_tokenÚrun_sync_soonÚsetÚwait)ÚevÚtokens     r   Ú+wait_run_sync_soon_idempotent_queue_barrierrE   W   sC   è ø€ Ü	�‰‹€BÜ×$Ñ$Ó&€EØ	×Ñ˜Ÿ™¨4ÐÔ0Ø
�'‰'‹)‡O‚Oús   ‚AA#ÁA!ÁA#c               ƒ  ó4  K  — t        t        j                  t        j                  «      5 } 	 t	        t        j
                  t        j                  «      «       d }t        d«      D ]º  }t        j                  t        j                  «       t        j                  t        j                  «       t        «       ƒ d {  –—†  |€| j                  «       ƒ d {  –—† }Œv| j                  «       ƒ d {  –—† }|t        j                  t        j                  fv sJ ‚||k7  sJ ‚|}Œ¼ t        | «      dk7  r'| j                  «       ƒ d {  –—†  t        | «      dk7  rŒ'd d d «       y 7 Œ¤7 ŒŒ7 Œu7 Œ"# t        $ r dd l}|j                  «        Y Œ0w xY w# 1 sw Y   y xY w­w)Né
   r   )r   r   r   ÚSIGFPEÚprintr   Úranger   rE   r   r
   ÚBaseExceptionÚ	tracebackÚ	print_exc)r   ÚpreviousÚ_ÚgotrL   s        r   Ú'test_open_signal_receiver_no_starvationrQ   ^   sQ  è ø€ ô 
œfŸm™m¬V¯]©]Ó	;ð "¸xð	"Ü”&×"Ñ"¤6§=¡=Ó1Ô2ØˆHÜ˜2“Yò 
#�Ü×#Ñ#¤F§M¡MÔ2Ü×#Ñ#¤F§M¡MÔ2ÜAÓC×CÐCØÐ#Ø%-×%7Ñ%7Ó%9×9‘Hà (× 2Ñ 2Ó 4×4�CØ¤6§=¡=´&·-±-Ð"@Ñ@Ð@Ð@Ø (š?Ð*˜?Ø"‘Hð
#ô +¨8Ó4¸Ò9Ø×(Ñ(Ó*×*Ð*ô +¨8Ó4¸Ó9÷!"ð "ð Døà9øà4øð +ùÜò 	"ó à×ÑÖ!ð	"ú÷%"ð "üsƒ   ‚)F«F­BE)Â<E!Â=E)ÃE#ÃE)Ã/E%Ã0AE)ÅE'ÅE)Å	FÅ!E)Å#E)Å%E)Å'E)Å)F	ÆFÆF	Æ	FÆFÆFc               ƒ  óÞ
  ‡K  — t        «       Šdˆfd„} t        d«       t        t        j                  t        j
                  h| «      5  t        t        j                  t        j
                  «      5 }t        j                  t        j                  «       t        j                  t        j
                  «       d d d «       t        «       ƒ d {  –—†  d d d «       ‰t        j                  t        j
                  hk(  sJ ‚‰j                  «        t        d«       t        t        j                  t        j
                  h| «      5  t        t        j                  t        j
                  «      5 }t        j                  t        j                  «       t        j                  t        j
                  «       t        «       ƒ d {  –—†  t        |«      dk(  sJ ‚	 d d d «       d d d «       ‰t        j                  t        j
                  hk(  sJ ‚‰j                  «        t        d«       t        t        j                  ht        j                  «      5  t        t        j                  «      5 }t        j                  t        j                  «       d d d «       t        «       ƒ d {  –—†  d d d «       t        d«       t        t        j                  ht        j                  «      5  t        t        j                  «      5 }t        j                  t        j                  «       t        «       ƒ d {  –—†  t        |«      dk(  sJ ‚	 d d d «       d d d «       d	d„}t        t        j                  t        j
                  h|«      5  t        j                  t        «      5 }t        t        j                  t        j
                  «      5 }t        j                  t        j                  «       t        j                  t        j
                  «       t        «       ƒ d {  –—†  t        |«      dk(  sJ ‚	 d d d «       d d d «       j                  }|j                   d   h}t#        |j$                  t        «      sJ ‚|j'                  |j$                  j                   d   «       |t        j                  t        j
                  hk(  sJ ‚	 d d d «       y # 1 sw Y   �ŒxY w7 �Œ# 1 sw Y   �ŒxY w7 �Œ+# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ}xY w7 �Œs# 1 sw Y   �ŒsxY w7 �Œ÷# 1 sw Y   �ŒæxY w# 1 sw Y   �ŒëxY w7 �Œ)# 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   y xY w­w)
Nc                ó(   •— ‰j                  | «       y r(   )Úadd)ÚsignoÚframeÚdelivered_directlys     €r   Údirect_handlerzAtest_catch_signals_race_condition_on_exit.<locals>.direct_handler€   s   ø€ Ø×Ñ˜uÕ%r%   é   r   é   é   c                ó   — t        | «      ‚r(   )r   )r   rV   s     r   Úraise_handlerz@test_catch_signals_race_condition_on_exit.<locals>.raise_handler­   s   € Ü˜6Ó"Ð"r%   r   )rU   ÚintrV   úFrameType | Noner/   r0   )r   r^   rV   r_   r/   r   )rA   rI   r	   r   r   rH   r   r   rE   Úclearr
   ÚSIG_IGNr   r   r   ÚvalueÚargsÚ
isinstanceÚ__context__rT   )rX   r   r]   ÚexcinfoÚexcÚsignumsrW   s         @r   Ú)test_catch_signals_race_condition_on_exitri   }   sÜ  øè ø€ Ü#&£5Ðõ&ô 
ˆ!„Hô 
œ&Ÿ-™-¬¯©Ð7¸Ó	Hñ <Ü!¤&§-¡-´·±Ó?ð 	/À8Ü×Ñ¤§¡Ô.Ü×Ñ¤§¡Ô.÷	/ô :Ó;×;Ð;÷	<ð
 ¤&§-¡-´·±Ð!?Ò?Ð?Ð?Ø×ÑÔä	ˆ!„Hô 
œ&Ÿ-™-¬¯©Ð7¸Ó	Hñ ;Ü!¤&§-¡-´·±Ó?ð 	;À8Ü×Ñ¤§¡Ô.Ü×Ñ¤§¡Ô.Ü=Ó?×?Ð?Ü+¨HÓ5¸Ò:Ð:Ñ:÷		;÷;ð ¤&§-¡-´·±Ð!?Ò?Ð?Ð?Ø×ÑÔô 
ˆ!„HÜ	œ&Ÿ-™-˜¬&¯.©.Ó	9ñ <Ü!¤&§-¡-Ó0ð 	/°HÜ×Ñ¤§¡Ô.÷	/ä9Ó;×;Ð;÷<ô 
ˆ!„HÜ	œ&Ÿ-™-˜¬&¯.©.Ó	9ñ ;Ü!¤&§-¡-Ó0ð 	;°HÜ×Ñ¤§¡Ô.Ü=Ó?×?Ð?Ü+¨HÓ5¸Ò:Ð:Ñ:÷	;÷;ó#ô 
œ&Ÿ-™-¬¯©Ð7¸Ó	Gñ 9Ü�]‰]œ<Ó(ð 	?¨GÜ%¤f§m¡m´V·]±]ÓCð ?ÀxÜ×#Ñ#¤F§M¡MÔ2Ü×#Ñ#¤F§M¡MÔ2ÜAÓC×CÐCÜ/°Ó9¸QÒ>Ð>Ñ>÷	?÷	?ð �m‰mˆØ—8‘8˜A‘;�-ˆÜ˜#Ÿ/™/¬<Ô8Ð8Ð8Ø�‰�C—O‘O×(Ñ(¨Ñ+Ô,Øœ6Ÿ=™=¬&¯-©-Ð8Ò8Ð8Ñ8÷9ð 9÷S	/ñ 	/úð 	<ù÷	<ñ <úð @ù÷	;ñ 	;ú÷;ñ ;ú÷	/ñ 	/úà;ù÷<ñ <úð @ù÷	;ñ 	;ú÷;ñ ;úð" Dù÷?ñ ?ú÷	?ñ 	?ú÷9ð 9üsb  ƒAU-Á	)S Á2ASÂ9S ÃSÃS ÃA2U-Å)S=Å.AS0ÇS-ÇS0ÇS=Ç A1U-ÉTÉ+$T
ÊTÊ$TÊ%TÊ)<U-Ë%T7Ë?1T*Ì0T'Ì1T*ÍT7Í6U-ÎU!Î)UÏAUÐU
ÐUÐ1UÐ9BU!Ó	U-ÓS	Ó	S Ó S*Ó%U-Ó-S0Ó0S:	Ó5S=Ó=TÔU-Ô
T	Ô	TÔT$ÔU-Ô'T*Ô*T4	Ô/T7Ô7UÔ<U-ÕUÕUÕUÕU	ÕU!Õ!U*Õ&U-r.   )Ú
__future__r   r   Útypingr   r   r   r1   Útrio.testingr   Ú r   Ú_signalsr	   r
   r   Útypesr   r   r!   r&   r)   r5   r;   rE   rQ   ri   r$   r%   r   ú<module>rp      sS   ðÝ "ã ß *ã ã Ý $å ß VÑ VáÝó3ó0	3óó3ó9ó7óó"ô>>9r%   