§
    ¯õiN  ã                  ó¾   — 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dS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚNoReturn)ÚRaisesGroupé   )Ú_core)Ú_signal_handlerÚget_pending_signal_countÚopen_signal_receiver)Ú	FrameTypeÚreturnÚNonec               ƒ  ó¤  K  — t          j        t           j        ¦  «        } t          t           j        ¦  «        5 }t          j        t           j        ¦  «         t          j        t           j        ¦  «         t          j        ¦   «         ƒ d {V —† t          j        t           j        ¦  «         t          j        ¦   «         ƒ d {V —† |2 3 d {V —†}|t           j        k    sJ ‚ n6 t          |¦  «        dk    sJ ‚t          j        t           j        ¦  «         |2 3 d {V —†}|t           j        k    sJ ‚ n6 t          |¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  |                     ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          j        t           j        ¦  «        | u sJ ‚d S )Nr   )ÚsignalÚ	getsignalÚSIGILLr   Úraise_signalr   Úwait_all_tasks_blockedr
   ÚpytestÚraisesÚRuntimeErrorÚ	__anext__)ÚorigÚreceiverÚsignums      úd/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tests/test_signals.pyÚtest_open_signal_receiverr      s|  è è € ÝÔ�FœMÑ*Ô*€DÝ	�fœmÑ	,Ô	,ð 7°õ 	Ô�FœMÑ*Ô*Ð*ÝÔ�FœMÑ*Ô*Ð*ÝÔ*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ÝÔ�FœMÑ*Ô*Ð*ÝÔ*Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø$ð 	ð 	ð 	ð 	ð 	ð 	ð 	�&Ø�Vœ]Ò*Ð*Ð*Ð*ØˆEð %õ (¨Ñ1Ô1°QÒ6Ð6Ð6Ð6ÝÔ�FœMÑ*Ô*Ð*Ø$ð 	ð 	ð 	ð 	ð 	ð 	ð 	�&Ø�Vœ]Ò*Ð*Ð*Ð*ØˆEð %õ (¨Ñ1Ô1°QÒ6Ð6Ð6Ð6Ð6ð!7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ" 
Œ•|Ñ	$Ô	$ð #ð #Ø× Ò Ñ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #åÔ�FœMÑ*Ô*¨dÐ2Ð2Ð2Ð2Ð2Ð2s=   ºBEÃ	C$ÃAEÄD5Ä +EÅEÅEÅ<F#Æ#F'Æ*F'c               ƒ  óV  K  — t          j        t           j        ¦  «        } t          j        t
          d¬¦  «        5  t          t           j        d¦  «        5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        t           j        ¦  «        | u sJ ‚d S )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Ñ*Ô*€DÝ	ŒÝØCð
ñ 
ô 
ð ð õ "¥&¤-°Ñ9Ô9ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô�FœMÑ*Ô*¨dÐ2Ð2Ð2Ð2Ð2Ð2s5   ¼A<ÁA%ÁA<Á%A)	Á)A<Á,A)	Á-A<Á<B ÂB c                 ó¼   — t          j        t          d¬¦  «        5  t          ¦   «         5  	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NzNo signals were providedr   )r   r   Ú	TypeErrorr   © ó    r   Ú$test_open_signal_receiver_empty_failr(   6   sà   € Ý	Œ•yÐ(BÐ	CÑ	CÔ	Cð ð Ý!Ñ#Ô#ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s.   œA«9­A¹=	½AÁ =	ÁAÁAÁAc               ƒ  ó  K  — t          j        t           j        ¦  «        } t          t           j        t           j        ¦  «        5  	 d d d ¦  «         n# 1 swxY w Y   t          j        t           j        ¦  «        | u sJ ‚d S ©N)r   r   r   r   r"   s    r   Ú@test_open_signal_receiver_restore_handler_after_duplicate_signalr+   <   sª   è è € ÝÔ�FœMÑ*Ô*€DÝ	�fœm­V¬]Ñ	;Ô	;ð ð Øðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ô�FœMÑ*Ô*¨dÐ2Ð2Ð2Ð2Ð2Ð2s   ÁAÁAÁAc               ƒ  óÖ   K  — dd„} t          j        t          ¦  «        5  t          j                             t          j        | ¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   c               “  óp   K  — t          t          j        ¦  «        5  	 d d d ¦  «         d S # 1 swxY w Y   d S r*   )r   r   ÚSIGINTr&   r'   r   Únaughtyz0test_catch_signals_wrong_thread.<locals>.naughtyE   s}   è è € Ý!¥&¤-Ñ0Ô0ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   œ+«/²/©r   r   )r   r   r   ÚtrioÚ	to_threadÚrun_syncÚrun)r/   s    r   Útest_catch_signals_wrong_threadr5   D   s¼   è è € ðð ð ð õ 
Œ•|Ñ	$Ô	$ð 9ð 9ÝŒn×%Ò%¥d¤h°Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s    1AÁA"Á%A"c               ƒ  ó²  K  — t          t          j        ¦  «        5  t          t          j        ¦  «        5 } t          j        ¦   «         4 ƒd {V —†}|                     | j        ¦  «         |                     | j        ¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S r*   )	r   r1   ÚBusyResourceErrorr   r   r   Úopen_nurseryÚ
start_soonr   )r   Únurserys     r   Ú"test_open_signal_receiver_conflictr;   M   sÆ  è è € Ý	•TÔ+Ñ	,Ô	,ð 7ð 7Ý!¥&¤-Ñ0Ô0ð 	7°HÝÔ(Ñ*Ô*ð 7ð 7ð 7ð 7ð 7ð 7ð 7¨gØ×"Ò" 8Ô#5Ñ6Ô6Ð6Ø×"Ò" 8Ô#5Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7sX   œC¶B4Á5BÂB4Â
B!Â!B4Â$B!Â%B4Â(CÂ4B8	Â8CÂ;B8	Â<CÃCÃCc               ƒ  óÂ   K  — t          j        ¦   «         } t          j        ¦   «         }|                     | j        d¬¦  «         |                      ¦   «         ƒ d {V —† d S )NT)Ú
idempotent)r1   ÚEventr   Úcurrent_trio_tokenÚrun_sync_soonÚsetÚwait)ÚevÚtokens     r   Ú+wait_run_sync_soon_idempotent_queue_barrierrE   W   sW   è è € Ý	Œ‰Œ€BÝÔ$Ñ&Ô&€EØ	×Ò˜œ¨4ÐÑ0Ô0Ð0Ø
�'Š'‰)Œ)€O€O€O€O€O€O€O€O€Or'   c               ƒ  ó0  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 {V —† |€|  	                    ¦   «         ƒ d {V —†}Œo|  	                    ¦   «         ƒ d {V —†}|t          j        t          j        fv sJ ‚||k    sJ ‚|}Œ°t          | ¦  «        dk    r-|  	                    ¦   «         ƒ d {V —† t          | ¦  «        dk    °-n(# t          $ r dd l}|                     ¦   «          Y nw xY wd d d ¦  «         d S # 1 swxY w Y   d S )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   ^   s  è è € õ 
�fœm­V¬]Ñ	;Ô	;ð "¸xð	"Ý•&Ô"¥6¤=Ñ1Ô1Ñ2Ô2Ð2ØˆHÝ˜2‘Y”Yð 
#ð 
#�ÝÔ#¥F¤MÑ2Ô2Ð2ÝÔ#¥F¤MÑ2Ô2Ð2ÝAÑCÔCÐCÐCÐCÐCÐCÐCÐCØÐ#Ø%-×%7Ò%7Ñ%9Ô%9Ð9Ð9Ð9Ð9Ð9Ð9�H�Hà (× 2Ò 2Ñ 4Ô 4Ð4Ð4Ð4Ð4Ð4Ð4�CØ¥6¤=µ&´-Ð"@Ð@Ð@Ð@Ð@Ø (š?˜?˜?˜?Ø"�H�Hå*¨8Ñ4Ô4¸Ò9Ð9Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*õ +¨8Ñ4Ô4¸Ò9Ð9øøåð 	"ð 	"ð 	"ð ÐÐÐà×ÒÑ!Ô!Ð!Ð!Ð!ð	"øøøð%"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s5   §F©D,EÅFÅ"E;Å8FÅ:E;Å;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 ¦  «         n# 1 swxY w Y   t          ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰t          j        t          j        hk    s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 {V —† t          |¦  «        d	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰t          j        t          j        hk    sJ ‚‰ 	                    ¦   «          t          d
¦  «         t          t          j        ht          j        ¦  «        5  t          t          j        ¦  «        5 }t          j        t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          ¦   «         ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          d¦  «         t          t          j        ht          j        ¦  «        5  t          t          j        ¦  «        5 }t          j        t          j        ¦  «         t          ¦   «         ƒ d {V —† t          |¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   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 {V —† t          |¦  «        d	k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |j        }|j        d         h}t#          |j        t          ¦  «        sJ ‚|                     |j        j        d         ¦  «         |t          j        t          j        hk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚsignoÚintÚframeúFrameType | Noner   r   c                ó2   •— ‰                      | ¦  «         d S r*   )Úadd)rS   rU   Údelivered_directlys     €r   Údirect_handlerzAtest_catch_signals_race_condition_on_exit.<locals>.direct_handler€   s   ø€ Ø×Ò˜uÑ%Ô%Ð%Ð%Ð%r'   é   r   é   é   r   r   c                ó    — t          | ¦  «        ‚r*   )r   )r   rU   s     r   Úraise_handlerz@test_catch_signals_race_condition_on_exit.<locals>.raise_handler­   s   € Ý˜6Ñ"Ô"Ð"r'   r   )rS   rT   rU   rV   r   r   )r   rT   rU   rV   r   r   )rA   rI   r	   r   r   rH   r   r   rE   Úclearr
   ÚSIG_IGNr   r   r   ÚvalueÚargsÚ
isinstanceÚ__context__rX   )rZ   r   r_   ÚexcinfoÚexcÚsignumsrY   s         @r   Ú)test_catch_signals_race_condition_on_exitri   }   sI  øè è € Ý#&¡5¤5Ðð&ð &ð &ð &ð &ð &õ 
ˆ!�H„H€Hõ 
�&œ-­¬Ð7¸Ñ	HÔ	Hð <ð <Ý!¥&¤-µ´Ñ?Ô?ð 	/À8ÝÔ¥¤Ñ.Ô.Ð.ÝÔ¥¤Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/õ :Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð	<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð
 ¥&¤-µ´Ð!?Ò?Ð?Ð?Ð?Ø×ÒÑÔÐå	ˆ!�H„H€Hõ 
�&œ-­¬Ð7¸Ñ	HÔ	Hð ;ð ;Ý!¥&¤-µ´Ñ?Ô?ð 	;À8ÝÔ¥¤Ñ.Ô.Ð.ÝÔ¥¤Ñ.Ô.Ð.Ý=Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ý+¨HÑ5Ô5¸Ò:Ð:Ð:Ð:Ð:ð		;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ¥&¤-µ´Ð!?Ò?Ð?Ð?Ð?Ø×ÒÑÔÐõ 
ˆ!�H„H€HÝ	�&œ-˜­&¬.Ñ	9Ô	9ð <ð <Ý!¥&¤-Ñ0Ô0ð 	/°HÝÔ¥¤Ñ.Ô.Ð.ð	/ð 	/ð 	/ñ 	/ô 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/øøøð 	/ð 	/ð 	/ð 	/å9Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
ˆ!�H„H€HÝ	�&œ-˜­&¬.Ñ	9Ô	9ð ;ð ;Ý!¥&¤-Ñ0Ô0ð 	;°HÝÔ¥¤Ñ.Ô.Ð.Ý=Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ý+¨HÑ5Ô5¸Ò:Ð:Ð:Ð:Ð:ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð#ð #ð #ð #õ 
�&œ-­¬Ð7¸Ñ	GÔ	Gð 9ð 9ÝŒ]�<Ñ(Ô(ð 	?¨GÝ%¥f¤mµV´]ÑCÔCð ?ÀxÝÔ#¥F¤MÑ2Ô2Ð2ÝÔ#¥F¤MÑ2Ô2Ð2ÝAÑCÔCÐCÐCÐCÐCÐCÐCÐCÝ/°Ñ9Ô9¸QÒ>Ð>Ð>Ð>Ð>ð	?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð ŒmˆØ”8˜A”;�-ˆÝ˜#œ/­<Ñ8Ô8Ð8Ð8Ð8Ø�Š�C”OÔ(¨Ô+Ñ,Ô,Ð,Ø�6œ=­&¬-Ð8Ò8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s6  Á%C&Á2=B;Â/C&Â;B?	Â?C&ÃB?	ÃC&Ã&C*Ã-C*Å%HÅ=A&G0Ç$HÇ0G4	Ç4HÇ7G4	Ç8HÈHÈHÉ8K(ÊJ=Ê1K(Ê=K	ËK(ËK	ËK(Ë(K,Ë/K,Ì'N-ÍANÎ
N-ÎN	ÎN-ÎN	ÎN-Î-N1Î4N1Ï"T8Ï<%R+Ð!A&RÒR+ÒRÒR+ÒRÒR+ÒT8Ò+R/	Ò/T8Ò2R/	Ò3A7T8Ô8T<Ô?T<r0   )Ú
__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      sd  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à €€€à €€€Ø $Ð $Ð $Ð $Ð $Ð $à Ð Ð Ð Ð Ð Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Vàð  ØÐÐÐÐÐð3ð 3ð 3ð 3ð0	3ð 	3ð 	3ð 	3ðð ð ð ð3ð 3ð 3ð 3ð9ð 9ð 9ð 9ð7ð 7ð 7ð 7ðð ð ð ð"ð "ð "ð "ð>>9ð >9ð >9ð >9ð >9ð >9r'   