§
    ¯õiž  ã                  ó  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZ d dlZd dlZddlmZmZmZmZmZmZmZmZ ddlmZ ddlmZ dd	lm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& dd
l'm(Z( erd dl)m*Z*m+Z+m,Z, d dl-m.Z. ddl/m0Z0 e1e2e3ej4        e5e6         z  f                  Z7 ed¦  «        Z8dRd„Z9dRd„Z:dRd„Z;dRd„Z<dRd„Z=dSdTd„Z>dRd„Z?dRd„Z@dRd„ZAdRd„ZBdUd"„ZCejD         E                    d#g d$¢¦  «        ejD         E                    d%d&d'g¦  «        ejD         E                    d(d&d'g¦  «        dVd+„¦   «         ¦   «         ¦   «         ZFdRd,„ZGdRd-„ZHdWd.„ZIdRd/„ZJdRd0„ZK ejL        d1¦  «        ZMd2eNd1<   dRd3„ZOdRd4„ZPdRd5„ZQdRd6„ZRdRd7„ZSdRd8„ZTdRd9„ZUdRd:„ZVdRd;„ZWdRd<„ZXdRd=„ZYdRd>„ZZdRd?„Z[dRd@„Z\dRdA„Z]dRdB„Z^dXdJ„Z_ejD         E                    dKd&d'g¦  «        dYdL„¦   «         Z`dRdM„ZadRdN„ZbedRdO„¦   «         ZcdRdP„ZddRdQ„ZedS )Zé    )ÚannotationsN©Úpartial)ÚTYPE_CHECKINGÚNoReturnÚTypeVaré   )ÚCancelScopeÚCapacityLimiterÚEventÚ_coreÚ
fail_afterÚmove_on_afterÚsleepÚsleep_forever)Úki_self)Úslow)Úactive_thread_countÚcurrent_default_thread_limiterÚfrom_thread_check_cancelledÚfrom_thread_runÚfrom_thread_run_syncÚto_thread_run_syncÚwait_all_threads_completed)Úwait_all_tasks_blocked)ÚAsyncGeneratorÚ	AwaitableÚCallable)ÚOutcome)ÚTaskÚTÚreturnÚNonec               ƒ  ót  ‡K  — t          j        ¦   «         Š	 ddˆfd„} t          j        ¦   «         }dd„} | t          |d|¬¦  «        ƒ d {V —† dd„} | t          |dt
          f|¬¦  «        ƒ d {V —† dd„} | t          |d|¬¦  «        ƒ d {V —† dd„} | t          |dt          f|¬¦  «        ƒ d {V —† d S )NÚdo_in_trio_threadúCallable[..., threading.Thread]ÚfnúCallable[..., T | Awaitable[T]]Úexpectedútuple[str, T]Ú
trio_tokenú_core.TrioToken | Noner"   r#   c              “  ó4  •‡ ‡‡‡K  — g Šd
ˆ ˆˆˆfd„}t          j        |d¬¦  «        }|                     ¦   «          |                     ¦   «         r8t	          d¦  «         t          d¦  «        ƒ d {V —† |                     ¦   «         °8‰d|fd	‰f|gk    sJ ‚d S )Nr"   r#   c                 ó:  •— 	 ‰                      dt          j        ¦   «         f¦  «          ‰‰‰‰¬¦  «        } ‰                      d| f¦  «         d S # t          $ r>}t	          |¦  «         ‰                      dt          |¦  «        f¦  «         Y d }~d S d }~ww xY w)NÚstart©r+   ÚgotÚerror)ÚappendÚ	threadingÚcurrent_threadÚBaseExceptionÚprintÚtype)ÚxÚexcr%   r'   Úrecordr+   s     €€€€úd/var/www/html/nodeJS/PythonScripts/venv3.11/lib/python3.11/site-packages/trio/_tests/test_threads.pyÚthreadfnz<test_do_in_trio_thread.<locals>.check_case.<locals>.threadfnA   s´   ø€ ð4Ø—’˜w­	Ô(@Ñ(BÔ(BÐCÑDÔDÐDØ%Ð% b¨&¸ZÐHÑHÔH�Ø—’˜u a˜jÑ)Ô)Ð)Ð)Ð)øÝ ð 4ð 4ð 4Ý�c‘
”
�
Ø—’˜w­¨S©	¬	Ð2Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3øøøøð4øøøs   ƒAA Á
BÁ3BÂBT)ÚtargetÚdaemonÚyawnç{®Gáz„?r/   Úf©r"   r#   )r4   ÚThreadr/   Úis_aliver7   r   )r%   r'   r)   r+   r=   Úchild_threadr;   Útrio_threads   `` `  @€r<   Ú
check_casez*test_do_in_trio_thread.<locals>.check_case9   så   øøøøøè è € ð  ˆð	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4õ !Ô'¨xÀÐEÑEÔEˆØ×ÒÑÔÐØ×#Ò#Ñ%Ô%ð 	Ý�&‰MŒMˆMÝ˜‘+”+ÐÐÐÐÐÐÐð ×#Ò#Ñ%Ô%ð 	ð ˜7 LÐ1°C¸Ð3EÀxÐPÒPÐPÐPÐPÐPÐPó    r;   Ú
RecordTypeÚintc                ó€   — t          j        ¦   «         rJ ‚|                      dt          j        ¦   «         f¦  «         dS )NrB   r	   )r   Úcurrently_ki_protectedr3   r4   r5   ©r;   s    r<   Úf1z"test_do_in_trio_thread.<locals>.f1S   s<   € ÝÔ/Ñ1Ô1Ð1Ð1Ð1Ø�Š�s�IÔ4Ñ6Ô6Ð7Ñ8Ô8Ð8ØˆqrI   )r1   r	   r0   r   c                óŠ   — t          j        ¦   «         rJ ‚|                      dt          j        ¦   «         f¦  «         t
          ‚©NrB   )r   rM   r3   r4   r5   Ú
ValueErrorrN   s    r<   Úf2z"test_do_in_trio_thread.<locals>.f2Z   s=   € ÝÔ/Ñ1Ô1Ð1Ð1Ð1Ø�Š�s�IÔ4Ñ6Ô6Ð7Ñ8Ô8Ð8ÝÐrI   r2   c              “  ó¶   K  — t          j        ¦   «         rJ ‚t          j        ¦   «         ƒ d {V —† |                      dt	          j        ¦   «         f¦  «         dS )NrB   é   )r   rM   Ú
checkpointr3   r4   r5   rN   s    r<   Úf3z"test_do_in_trio_thread.<locals>.f3a   sa   è è € ÝÔ/Ñ1Ô1Ð1Ð1Ð1ÝÔÑ Ô Ð Ð Ð Ð Ð Ð Ð Ø�Š�s�IÔ4Ñ6Ô6Ð7Ñ8Ô8Ð8ØˆqrI   )r1   rU   c              “  óÀ   K  — t          j        ¦   «         rJ ‚t          j        ¦   «         ƒ d {V —† |                      dt	          j        ¦   «         f¦  «         t          ‚rQ   )r   rM   rV   r3   r4   r5   ÚKeyErrorrN   s    r<   Úf4z"test_do_in_trio_thread.<locals>.f4i   sa   è è € ÝÔ/Ñ1Ô1Ð1Ð1Ð1ÝÔÑ Ô Ð Ð Ð Ð Ð Ð Ð Ø�Š�s�IÔ4Ñ6Ô6Ð7Ñ8Ô8Ð8ÝˆrI   ©N)
r%   r&   r'   r(   r)   r*   r+   r,   r"   r#   )r;   rJ   r"   rK   )r;   rJ   r"   r   )r4   r5   r   Úcurrent_trio_tokenr   rR   r   rY   )rH   ÚtokenrO   rS   rW   rZ   rG   s         @r<   Útest_do_in_trio_threadr^   6   sk  øè è € ÝÔ*Ñ,Ô,€Kð .2ð	Qð Qð Qð Qð Qð Qð Qõ0 Ô$Ñ&Ô&€Eðð ð ð ð
 ˆ*Õ)¨2¨zÀeÐ
LÑ
LÔ
LÐLÐLÐLÐLÐLÐLÐLðð ð ð ð
 ˆ*Õ)¨2°½Ð/DÐQVÐ
WÑ
WÔ
WÐWÐWÐWÐWÐWÐWÐWðð ð ð ð ˆ*•_ b¨*ÀÐ
GÑ
GÔ
GÐGÐGÐGÐGÐGÐGÐGðð ð ð ð ˆ*•_ b¨7µHÐ*=È%Ð
PÑ
PÔ
PÐPÐPÐPÐPÐPÐPÐPÐPÐPrI   c               ƒ  ó  K  — t          j        t          ¦  «        5  t          d„ ¦  «         d d d ¦  «         n# 1 swxY w Y   dd„} t          j        t          ¦  «        5  t	          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                 ó   — d S r[   © ra   rI   r<   ú<lambda>z9test_do_in_trio_thread_from_trio_thread.<locals>.<lambda>t   ó   €  T€ rI   r"   r#   c               “  ó
   K  — d S r[   ra   ra   rI   r<   Úfooz4test_do_in_trio_thread_from_trio_thread.<locals>.foov   ó   è è € ØˆrI   rC   )ÚpytestÚraisesÚRuntimeErrorr   r   )re   s    r<   Ú'test_do_in_trio_thread_from_trio_threadrj   r   s  è è € Ý	Œ•|Ñ	$Ô	$ð +ð +Ý˜\˜\Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ðð ð ð õ 
Œ•|Ñ	$Ô	$ð ð Ý˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   œ9¹=Á =Á!A>Á>BÂBc                 ól   ‡— t          ¦   «         Šdˆfd„} t          j        | ¦  «         ‰ddhk    sJ ‚d S )Nr"   r#   c               “  ó¬  •‡‡‡K  — t          j        ¦   «         Šdd„Šdˆfd„Šdˆˆˆˆfd„} t          j        | ¬¦  «        }|                     ¦   «          t          d¦  «         |                     ¦   «         r)t          d¦  «        ƒ d {V —† |                     ¦   «         °)t          d	¦  «         |                     ¦   «          t          d
¦  «         d S )Nr"   r#   c                 ó  — t          d¦  «         t          j        ¦   «         rJ ‚t          d¦  «         	 t          ¦   «          dd l} t          d | j        ¦   «         ¦  «         d S # dd l} t          d | j        ¦   «         ¦  «         w xY w)Nzin Trio threadr   r   Úfinally)r7   r   rM   r   ÚsysÚexc_info)ro   s    r<   Útrio_thread_fnzTtest_run_in_trio_thread_ki.<locals>.check_run_in_trio_thread.<locals>.trio_thread_fn…   s“   € ÝÐ"Ñ#Ô#Ð#ÝÔ3Ñ5Ô5Ð5Ð5Ð5Ý�)ÑÔÐð1Ý‘	”	�	à�
�
�
å�i  ¤¡¤Ñ0Ô0Ð0Ð0Ð0øð �
�
�
å�i  ¤¡¤Ñ0Ô0Ð0Ð0øøøs   µA& Á&#B	c               “  ó    •K  —  ‰ ¦   «          d S r[   ra   )rq   s   €r<   Útrio_thread_afnzUtest_run_in_trio_thread_ki.<locals>.check_run_in_trio_thread.<locals>.trio_thread_afn�   s   øè è € ØˆNÑÔÐÐÐrI   c                 óB  •— 	 t          d¦  «         t          ‰‰¬¦  «         n4# t          $ r' t          d¦  «         ‰                      d¦  «         Y nw xY w	 t	          ‰‰¬¦  «         d S # t          $ r( t          d¦  «         ‰                      d¦  «         Y d S w xY w)NÚrunningr0   Úok1Úok2)r7   r   ÚKeyboardInterruptÚaddr   )r;   r]   rs   rq   s   €€€€r<   Úexternal_thread_fnzXtest_run_in_trio_thread_ki.<locals>.check_run_in_trio_thread.<locals>.external_thread_fn“   sÉ   ø€ ð"Ý�iÑ Ô Ð Ý$ ^ÀÐFÑFÔFÐFÐFøÝ$ð "ð "ð "Ý�e‘”�Ø—
’
˜5Ñ!Ô!Ð!Ð!Ð!ð"øøøð"Ý ¸EÐBÑBÔBÐBÐBÐBøÝ$ð "ð "ð "Ý�e‘”�Ø—
’
˜5Ñ!Ô!Ð!Ð!Ð!Ð!ð"øøøs!   ƒ $ ¤.AÁAÁA, Á,.BÂB)r>   ÚwaitingrA   zwaited, joiningÚdonerC   )	r   r\   r4   rD   r/   r7   rE   r   Újoin)rz   Úthreadr]   rs   rq   r;   s     @@@€r<   Úcheck_run_in_trio_threadz<test_run_in_trio_thread_ki.<locals>.check_run_in_trio_thread‚   s  øøøøè è € ÝÔ(Ñ*Ô*ˆð		1ð 		1ð 		1ð 		1ð	ð 	ð 	ð 	ð 	ð 	ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"õ Ô!Ð);Ð<Ñ<Ô<ˆØ�Š‰ŒˆÝˆiÑÔÐØ�oŠoÑÔð 	Ý˜‘+”+ÐÐÐÐÐÐÐð �oŠoÑÔð 	åÐÑ Ô Ð Ø�Š‰ŒˆÝˆf‰ŒˆˆˆrI   rv   rw   rC   )Úsetr   Úrun)r   r;   s    @r<   Útest_run_in_trio_thread_kir‚   }   s[   ø€ õ ‰UŒU€Fð%ð %ð %ð %ð %ð %õN 
„IÐ&Ñ'Ô'Ð'Ø�e˜U�^Ò#Ð#Ð#Ð#Ð#Ð#rI   c                 ó¾   ‡‡‡‡— g Št          ¦   «         Šdˆˆfd„Šdˆˆfd„Šdˆˆˆfd„} t          j        | ¦  «        }|                     ¦   «          ‰d	d
gk    sJ ‚d S )Nr"   r#   c               “  ó”   •K  — ‰                      d¦  «         ‰                      ¦   «          t          j        d„ ¦  «        ƒ d {V —† d S )NÚsleepingc                ó$   — t           j        j        S r[   )r   ÚAbortÚ	SUCCEEDED)Ú_s    r<   rb   zMtest_await_in_trio_thread_while_main_exits.<locals>.trio_fn.<locals>.<lambda>´   s   € µE´KÔ4I€ rI   )r3   r€   r   Úwait_task_rescheduled)Úevr;   s   €€r<   Útrio_fnz;test_await_in_trio_thread_while_main_exits.<locals>.trio_fn±   sS   øè è € Ø�Š�jÑ!Ô!Ð!Ø
�Š‰ŒˆÝÔ)Ð*IÐ*IÑJÔJÐJÐJÐJÐJÐJÐJÐJÐJÐJrI   r]   ú_core.TrioTokenc                ó‚   •— 	 t          ‰| ¬¦  «         d S # t          j        $ r ‰                     d¦  «         Y d S w xY w)Nr0   Ú	cancelled)r   r   Ú	Cancelledr3   )r]   r;   rŒ   s    €€r<   Ú	thread_fnz=test_await_in_trio_thread_while_main_exits.<locals>.thread_fn¶   sY   ø€ ð	'Ý˜G°Ð6Ñ6Ô6Ð6Ð6Ð6øÝŒð 	'ð 	'ð 	'Ø�MŠM˜+Ñ&Ô&Ð&Ð&Ð&Ð&ð	'øøøs   ƒ –$>½>úthreading.Threadc               “  óÎ   •K  — t          j        ¦   «         } t          j        ‰| f¬¦  «        }|                     ¦   «          ‰                     ¦   «         ƒ d {V —† ‰dgk    sJ ‚|S )N)r>   Úargsr…   )r   r\   r4   rD   r/   Úwait)r]   r~   r‹   r;   r‘   s     €€€r<   Úmainz8test_await_in_trio_thread_while_main_exits.<locals>.main¼   sj   øè è € ÝÔ(Ñ*Ô*ˆÝÔ!¨¸%¸ÐBÑBÔBˆØ�Š‰ŒˆØ�gŠg‰iŒiˆˆˆˆˆˆˆØ˜*˜Ò%Ð%Ð%Ð%ØˆrI   r…   r�   rC   )r]   r�   r"   r#   )r"   r’   )r   r   r�   r}   )r–   r~   r‹   r;   r‘   rŒ   s     @@@@r<   Ú*test_await_in_trio_thread_while_main_exitsr—   ­   sÁ   øøøø€ Ø€FÝ	‰Œ€BðKð Kð Kð Kð Kð Kð Kð
'ð 'ð 'ð 'ð 'ð 'ð 'ðð ð ð ð ð ð ð õ ŒY�t‰_Œ_€FØ
‡K‚K�M„M€MØ�j +Ð.Ò.Ð.Ð.Ð.Ð.Ð.rI   c               ƒ  ó^  ‡‡K  — d} d| z   fdd„Šdˆfd	„Št          ‰¦  «        ƒ d {V —† t          ‰d ¬
¦  «        ƒ d {V —† t           ‰d| z   ¦  «        ¦  «        ƒ d {V —† dˆfd„} |d¦  «        ƒ d {V —†  |d¦  «        ƒ d {V —†  |d¦  «        ƒ d {V —†  |d¦  «        ƒ d {V —† d S )Nz0 from trio._tests.test_threads.test_named_threadÚinnerÚnameÚstrr"   r’   c                ód   — t          j        ¦   «         j        | k    sJ ‚t          j        ¦   «         S r[   )r4   r5   rš   )rš   s    r<   r™   z test_named_thread.<locals>.innerÌ   s.   € ÝÔ'Ñ)Ô)Ô.°$Ò6Ð6Ð6Ð6ÝÔ'Ñ)Ô)Ð)rI   úCallable[[], threading.Thread]c                ó$   •— t          ‰| ¦  «        S r[   r   ©rš   r™   s    €r<   rB   ztest_named_thread.<locals>.fÐ   ó   ø€ Ý�u˜dÑ#Ô#Ð#rI   ©Úthread_namer#   c              “  ó„   •K  — t           ‰| ¦  «        | ¬¦  «        ƒ d {V —†}t          j        d|j        ¦  «        sJ ‚d S )Nr¡   úTrio thread [0-9]*)r   ÚreÚmatchrš   )rš   r~   rB   s     €r<   Útest_thread_namez+test_named_thread.<locals>.test_thread_nameÛ   sT   øè è € Ý)¨!¨!¨D©'¬'¸tÐDÑDÔDÐDÐDÐDÐDÐDÐDˆÝŒxÐ-¨v¬{Ñ;Ô;Ð;Ð;Ð;Ð;Ð;rI   Ú ÚfobiedooÚname_longer_than_15_charactersõ   ðŸ’™©rš   r›   r"   r’   ©rš   r›   r"   r�   )rš   r›   r"   r#   ©r   )Úendingr§   rB   r™   s     @@r<   Útest_named_threadr°   É   sv  øøè è € Ø?€Fà! FÑ*ð *ð *ð *ð *ð *ð$ð $ð $ð $ð $ð $õ ˜UÑ
#Ô
#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ý
˜U°Ð
5Ñ
5Ô
5Ð5Ð5Ð5Ð5Ð5Ð5Ð5õ ˜Q˜Q˜v¨™Ñ/Ô/Ñ
0Ô
0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð<ð <ð <ð <ð <ð <ð Ð
˜2Ñ
Ô
ÐÐÐÐÐÐÐØ
Ð
˜:Ñ
&Ô
&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø
Ð
Ð;Ñ
<Ô
<Ð<Ð<Ð<Ð<Ð<Ð<Ð<à
Ð
˜6Ñ
"Ô
"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"rI   Úidentú
int | Noneú
str | Nonec                ój  — dd l }dd l}|j                             d¦  «        }|sd}	 |                     |¦  «        }n-# t
          $ r  t          dt          j        › �¦  «         Y d S w xY wt          |dd ¦  «        }|sJ ‚|j
        |j        |j        g|_        |j        |_        |                     dd¬¦  «        }| €t#          j        ¦   «         }  || |d¦  «        dk    sJ ‚	 |j                             ¦   «         S # t*          $ r*}t-          j        d	|j        ›d
|› �¦  «         Y d }~d S d }~ww xY w)Nr   Úpthreadzlibc.sozno pthread on Úpthread_getname_nprI   é   )Úsizezvalue: z, exception: )ÚctypesÚctypes.utilÚutilÚfind_libraryÚCDLLÚ	Exceptionr7   ro   ÚplatformÚgetattrÚc_void_pÚc_char_pÚc_size_tÚargtypesÚc_intÚrestypeÚcreate_string_bufferr4   Ú	get_identÚvalueÚdecodeÚUnicodeDecodeErrorrg   Úfail)r±   r¹   Úlibpthread_pathÚ
libpthreadr¶   Úname_bufferÚes          r<   Ú_get_thread_namerÑ   æ   s™  € Ø€M€M€MØÐÐÐà”k×.Ò.¨yÑ9Ô9€OØð $ð $ˆðØ—[’[ Ñ1Ô1ˆ
ˆ
øÝð ð ð ÝÐ-�sœ|Ð-Ð-Ñ.Ô.Ð.Øˆtˆtðøøøõ ! Ð-AÀ4ÑHÔHÐð ÐÐÐð 	ŒØŒØŒð#ÐÔð
 "(¤ÐÔà×-Ò-¨c¸Ð-Ñ;Ô;€KØ€}ÝÔ#Ñ%Ô%ˆØÐ˜e [°"Ñ5Ô5¸Ò:Ð:Ð:Ð:ðEØÔ ×'Ò'Ñ)Ô)Ð)øÝð Eð Eð EåŒÐC˜kÔ/ÐCÐCÀÐCÐCÑDÔDÐDÐDÐDÐDÐDÐDÐDøøøøðEøøøs'   ¨> ¾&A(Á'A(Ã%C> Ã>
D2ÄD-Ä-D2c               ƒ  ó<  ‡‡K  — dd„Šdˆfd„Šd} t           ‰| ¦  «        ¦  «        ƒ d {V —† t           ‰| ¦  «        d ¬	¦  «        ƒ d {V —† ddˆfd„} |d¦  «        ƒ d {V —†  |d¦  «        ƒ d {V —†  |d¦  «        ƒ d {V —†  |dd¬¦  «        ƒ d {V —† d S )Nrš   r›   r"   r’   c                óÌ   — t          ¦   «         }|€2t          j        dk    r"t          j        dt          j        › �¦  «         n|| d d…         k    sJ ‚t          j        ¦   «         S )NÚlinuxzno pthread OS support on é   )rÑ   ro   r¿   rg   Úskipr4   r5   )rš   Úos_thread_names     r<   r™   z#test_named_thread_os.<locals>.inner  se   € Ý)Ñ+Ô+ˆØÐ!¥c¤l°gÒ&=Ð&=ÝŒKÐBµC´LÐBÐBÑCÔCÐCÐCà! T¨#¨2¨#¤YÒ.Ð.Ð.Ð.åÔ'Ñ)Ô)Ð)rI   r�   c                ó$   •— t          ‰| ¦  «        S r[   r   rŸ   s    €r<   rB   ztest_named_thread_os.<locals>.f  r    rI   z4None from trio._tests.test_threads.test_named_threadr¡   r)   r³   r#   c              “  óÂ   •K  — |€| }t           ‰|¦  «        | ¬¦  «        ƒ d {V —†}t          |j        ¦  «        }|€
J d¦   «         ‚t          j        d|¦  «        sJ ‚d S )Nr¡   z'should skip earlier if this is the caser¤   )r   rÑ   r±   r¥   r¦   )rš   r)   r~   r×   rB   s       €r<   r§   z.test_named_thread_os.<locals>.test_thread_name'  s�   øè è € ØÐØˆHÝ)¨!¨!¨H©+¬+À4ÐHÑHÔHÐHÐHÐHÐHÐHÐHˆå)¨&¬,Ñ7Ô7ˆØÐ)Ð)Ð+TÑ)Ô)Ð)ÝŒxÐ-¨~Ñ>Ô>Ð>Ð>Ð>Ð>Ð>rI   r¨   r©   rª   r«   ú?)r)   r¬   r­   r[   )rš   r›   r)   r³   r"   r#   r®   )Údefaultr§   rB   r™   s     @@r<   Útest_named_thread_osrÜ     sT  øøè è € ð*ð *ð *ð *ð$ð $ð $ð $ð $ð $ð E€GÝ
˜Q˜Q˜w™ZœZÑ
(Ô
(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ý
˜Q˜Q˜w™ZœZ°TÐ
:Ñ
:Ô
:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð?ð ?ð ?ð ?ð ?ð ?ð ?ð Ð
˜2Ñ
Ô
ÐÐÐÐÐÐÐØ
Ð
˜:Ñ
&Ô
&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø
Ð
Ð;Ñ
<Ô
<Ð<Ð<Ð<Ð<Ð<Ð<Ð<à
Ð
˜6¨CÐ
0Ñ
0Ô
0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0rI   c                 ó”   — ddl m}   | ¦   «         }|€5t          j        dk    sJ ‚t	          j        dt          j        › �¦  «         d S d S )Nr   )Úget_os_thread_name_funcrÔ   zno pthread_setname_np on )Útrio._core._thread_cacherÞ   ro   r¿   rg   rÖ   )rÞ   Úks     r<   Útest_has_pthread_setname_nprá   7  sb   € Ø@Ð@Ð@Ð@Ð@Ð@àÐÑ!Ô!€AØ€yÝŒ|˜wÒ&Ð&Ð&Ð&ÝŒÐ>µ´Ð>Ð>Ñ?Ô?Ð?Ð?Ð?ð €yrI   c               ƒ  ó„  K  — t          j        ¦   «         } dd„}t          |d¦  «        ƒ d {V —†\  }}|dk    sJ ‚|| k    sJ ‚dd„}t          j        t
          d	¬
¦  «        5 }t          |¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          |j        j        ¦  «         |j        j        d         | k    sJ ‚d S )Nr9   r!   r"   útuple[T, threading.Thread]c                ó,   — | t          j        ¦   «         fS r[   )r4   r5   )r9   s    r<   rB   z$test_run_in_worker_thread.<locals>.fC  s   € Ø•9Ô+Ñ-Ô-Ð.Ð.rI   é   r   c                 óB   — t          t          j        ¦   «         ¦  «        ‚r[   )rR   r4   r5   ra   rI   r<   Úgz$test_run_in_worker_thread.<locals>.gJ  s   € Ý�Ô1Ñ3Ô3Ñ4Ô4Ð4rI   z1^<Thread\(Trio thread \d+, started daemon \d+\)>$©r¦   r   )r9   r!   r"   rã   )r"   r   )	r4   r5   r   rg   rh   rR   r7   rÉ   r”   )rG   rB   r9   rF   rç   Úexcinfos         r<   Útest_run_in_worker_threadrê   @  sK  è è € ÝÔ*Ñ,Ô,€Kð/ð /ð /ð /õ /¨q°!Ñ4Ô4Ð4Ð4Ð4Ð4Ð4Ð4�O€A€|Ø�Š6ˆ6ˆ6ˆ6Ø˜;Ò&Ð&Ð&Ð&ð5ð 5ð 5ð 5õ 
ŒÝØBð
ñ 
ô 
ð $ð 
Ý  Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#ð	$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ
 
ˆ'Œ-Ô
ÑÔÐØŒ=Ô˜aÔ  KÒ/Ð/Ð/Ð/Ð/Ð/s   Á"BÂBÂBc               ƒ  ó¾  ‡‡‡K  — d gŠdˆfd„Šdˆˆfd„} g Št          j        ¦   «         }t          j        ¦   «         4 ƒd {V —†}|                     | |d	¦  «         t          ¦   «         ƒ d {V —† ‰d
gk    sJ ‚|j                             ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰d         dk    sJ ‚|                     d ¦  «         ‰d         dk    r t          j
        d¦  «         ‰d         dk    ° g Šd ‰d<   t          j        ¦   «         4 ƒd {V —†}|                     | |d¦  «         t          ¦   «         ƒ d {V —† |j                             ¦   «          t          j        d	¬¦  «        5  t          d¦  «        D ]}t          j        ¦   «         ƒ d {V —† Œ	 d d d ¦  «         n# 1 swxY w Y   ‰d
gk    sJ ‚|                     d ¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t          j        ¦   «         5 }|                     ¦   «           | |d¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |j        sJ ‚d S )NÚqústdlib_queue.Queue[None]r"   r#   c                óD   •— d‰d<   |                       ¦   «          d‰d<   d S )NÚblockingr   Úfinished)Úget)rì   Úregisters    €r<   rB   z1test_run_in_worker_thread_cancellation.<locals>.fY  s&   ø€ à ˆ�‰Ø	�Š‰ŒˆØ ˆ�‰ˆˆrI   Úabandon_on_cancelÚboolc              “  óÄ   •K  — ‰                      d¦  «         	 t          ‰| |¬¦  «        ƒ d {V —†	 ‰                      d¦  «         S # ‰                      d¦  «         w xY w©Nr/   ©ró   Úexit)r3   r   )rì   ró   rB   r;   s     €€r<   Úchildz5test_run_in_worker_thread_cancellation.<locals>.child_  ss   øè è € Ø�Š�gÑÔÐð	"Ý+¨A¨qÐDUÐVÑVÔVÐVÐVÐVÐVÐVÐVÐVà�MŠM˜&Ñ!Ô!Ð!Ð!øˆF�MŠM˜&Ñ!Ô!Ð!Ð!øøøs   šA ÁATr/   r   rð   rA   F©Úshieldé
   )rì   rí   r"   r#   )rì   rí   ró   rô   r"   r#   )Ústdlib_queueÚQueuer   Úopen_nurseryÚ
start_soonr   Úcancel_scopeÚcancelÚputÚtimer   r
   ÚrangerV   Úcancelled_caught)rù   rì   Únurseryr‰   ÚscoperB   r;   rò   s        @@@r<   Ú&test_run_in_worker_thread_cancellationr	  V  sa  øøøè è € Ø"& €Hð!ð !ð !ð !ð !ð !ð"ð "ð "ð "ð "ð "ð "ð €FÝ".Ô"4Ñ"6Ô"6€AÝÔ!Ñ#Ô#ð &ð &ð &ð &ð &ð &ð & wØ×Ò˜5 ! TÑ*Ô*Ð*õ %Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø˜'˜Ò"Ð"Ð"Ð"àÔ×#Ò#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð �AŒ;˜*Ò$Ð$Ð$Ð$à‡E‚Eˆ$�K„K€KØ
�1Œ+˜Ò
#Ð
#ÝŒ
�4ÑÔÐð �1Œ+˜Ò
#Ð
#ð €FØ€HˆQ�KÝÔ!Ñ#Ô#ð 	ð 	ð 	ð 	ð 	ð 	ð 	 wØ×Ò˜5 ! UÑ+Ô+Ð+Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÔ×#Ò#Ñ%Ô%Ð%ÝÔ dÐ+Ñ+Ô+ð 	)ð 	)Ý˜2‘Y”Yð )ð )�ÝÔ&Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð)ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)ð ˜'˜Ò"Ð"Ð"Ð"Ø	�Šˆd‰Œˆð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 
Ô	Ñ	Ô	ð  Ø�Š‰ŒˆØˆe�A�u‰oŒoÐÐÐÐÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ô!Ð!Ð!Ð!Ð!Ð!s\   ÁAB$Â$
B.Â1B.Ä$AG2Å>,F7Æ+G2Æ7F;	Æ;G2Æ>F;	Æ?!G2Ç2
G<Ç?G<È'I	É	IÉIÚcapfdúpytest.CaptureFixture[str]Úmonkeypatchúpytest.MonkeyPatchc                óì  ‡‡‡— |                      t          j        dd¦  «         t          j        ¦   «         Št          j        ¦   «         Šdˆˆfd„Šdˆfd„}t          j        |¦  «         ‰                     d ¦  «         ‰                     ¦   «         }|                     ¦   «         r(t          j
        d¦  «         |                     ¦   «         °(|                      ¦   «         \  }}d|vsJ ‚d|vsJ ‚d S )	NÚIDLE_TIMEOUTrA   r"   r#   c                 ó|   •— ‰                       ¦   «          ‰                     t          j        ¦   «         ¦  «         d S r[   )rñ   r  r4   r5   )Úq1Úq2s   €€r<   r‘   z6test_run_in_worker_thread_abandoned.<locals>.thread_fn›  s1   ø€ Ø
�Š‰ŒˆØ
�Š�yÔ'Ñ)Ô)Ñ*Ô*Ð*Ð*Ð*rI   c               “  ó  •K  — dˆfd„} t          j        ¦   «         4 ƒd {V —†}|                     | ¦  «         t          ¦   «         ƒ d {V —† |j                             ¦   «          d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )Nr"   r#   c               “  ó:   •K  — t          ‰ d¬¦  «        ƒ d {V —† d S )NTr÷   r®   )r‘   s   €r<   rù   z@test_run_in_worker_thread_abandoned.<locals>.main.<locals>.child   s2   øè è € Ý$ YÀ$ÐGÑGÔGÐGÐGÐGÐGÐGÐGÐGÐGÐGrI   rC   )r   rÿ   r   r   r  r  )rù   r  r‘   s     €r<   r–   z1test_run_in_worker_thread_abandoned.<locals>.mainŸ  s>  øè è € ð	Hð 	Hð 	Hð 	Hð 	Hð 	Hõ Ô%Ñ'Ô'ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨7Ø×Ò˜uÑ%Ô%Ð%Ý(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØÔ ×'Ò'Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   £AA9Á9
BÂBzException in threadrC   )Úsetattrr   Ú_thread_cacherý   rþ   r�   r  rñ   rE   r  r   Ú
readouterr)	r
  r  r–   r~   ÚoutÚerrr  r  r‘   s	         @@@r<   Ú#test_run_in_worker_thread_abandonedr  ’  s!  øøø€ ð ×Ò�Ô+¨^¸TÑBÔBÐBå#/Ô#5Ñ#7Ô#7€BÝ/;Ô/AÑ/CÔ/C€Bð+ð +ð +ð +ð +ð +ð +ð*ð *ð *ð *ð *ð *õ 
„Iˆd�O„O€Oà‡F‚Fˆ4�L„L€Lð �VŠV‰XŒX€FØ
�/Š/Ñ
Ô
ð ÝŒ
�4ÑÔÐð �/Š/Ñ
Ô
ð ð ×ÒÑ!Ô!�H€CˆØ ¨Ð+Ð+Ð+Ð+Ø ¨Ð+Ð+Ð+Ð+Ð+Ð+rI   ÚMAX)rU   é   rü   r  FTÚuse_default_limiterrK   rô   c              ƒ  ó   ‡‡
‡‡‡‡‡K  — d| z  }t          j        ¦   «         Š
t          j        ¦   «         Š|rt          ¦   «         }|j        }| |_        d Šnt          | ¦  «        }| }|Š	  G d„ d¦  «        Šd‰_        d‰_        d‰_        d‰_	        t          j        ¦   «         Šdˆ
ˆˆˆfd	„Šdˆˆˆfd„}t          j        ¦   «         4 ƒd {V —†}t          d¦  «         g }t          |¦  «        D ]S}	|                     t          ¦   «         ¦  «         |                     ||d         ¦  «         t#          ¦   «         ƒ d {V —† ŒT‰rCt          d¦  «         |d                              ¦   «         ƒ d {V —† t#          ¦   «         ƒ d {V —† ‰j	        | k    s|                     ¦   «         j        | k    r=t+          d¦  «        ƒ d {V —† ‰j	        | k    ° |                     ¦   «         j        | k    °=‰
                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰j        | k    sJ ‚‰r+|j        dk    r t+          d¦  «        ƒ d {V —† |j        dk    ° ‰j        |k    sJ ‚‰j        dk    sJ ‚	 ||_        d S # ||_        w xY w)Nr	   c                  ó8   — e Zd ZU ded<   ded<   ded<   ded<   dS )ú0test_run_in_worker_thread_limiter.<locals>.staterK   ÚranÚ
high_waterru   ÚparkedN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__ra   rI   r<   Ústater   Ü  s4   € € € € € € ØˆHˆH‰HØˆOˆO‰OØˆLˆL‰LØˆKˆK‰KˆKˆKrI   r(  r   r  r
   r"   r#   c                óÞ  •— t          d¦  «         t          | j        ‰¬¦  «         ‰5  ‰xj        dz  c_        ‰xj        dz  c_        t          ‰j        ‰j        ¦  «        ‰_        ‰xj        dz  c_        d d d ¦  «         n# 1 swxY w Y   ‰                     ¦   «          ‰5  ‰xj        dz  c_        ‰xj        dz  c_        d d d ¦  «         n# 1 swxY w Y   t          d¦  «         d S )Nzthread_fn startr0   rå   zthread_fn exiting)	r7   r   r  r!  ru   Úmaxr"  r#  r•   )r  ÚgateÚlockr(  r]   s    €€€€r<   r‘   z4test_run_in_worker_thread_limiter.<locals>.thread_fné  sl  ø€ ÝÐ#Ñ$Ô$Ð$Ý  Ô!4ÀÐGÑGÔGÐGØð "ð "Ø�	”	˜Q‘�	”	Ø�” Ñ"�”Ý#& uÔ'7¸¼Ñ#GÔ#G�Ô ð �” Ñ!�”ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð �IŠI‰KŒKˆKØð #ð #Ø�” Ñ!�”Ø�” Ñ"�”ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #õ Ð%Ñ&Ô&Ð&Ð&Ð&s$   ©ABÂB	ÂB	Â&!CÃCÃCÚeventr   c              “  óæ   •K  — t          j        ¦   «         5 }t          ‰|‰‰¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          d|j        ¦  «         |                      ¦   «          d S )N)ró   Úlimiterzrun_thread finished, cancelled:)r   r
   r   r7   r  r€   )r-  r  r  Úlimiter_argr‘   s     €€€r<   Ú
run_threadz5test_run_in_worker_thread_limiter.<locals>.run_threadù  sÐ   øè è € ÝÔ"Ñ$Ô$ð ¨Ý(ØØ Ø&,Ø'ð	ñ ô ð ð ð ð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Ð3°\Ô5RÑSÔSÐSØ�IŠI‰KŒKˆKˆKˆKs   —=½AÁAÚspawningéÿÿÿÿz'waiting for first cancellation to clearrA   )r  r
   r"   r#   )r-  r   r"   r#   )r4   r   ÚLockr   Útotal_tokensr   r!  r"  ru   r#  r   r\   rÿ   r7   r  r3   r   r   r•   Ú
statisticsÚtasks_waitingr   r€   Úborrowed_tokens)r  r  r  ÚCOUNTÚcÚorig_total_tokensr1  r  Úeventsr‰   r+  r0  r,  r(  r‘   r]   s    `        @@@@@@r<   Ú!test_run_in_worker_thread_limiterr=  ¸  sÑ  øøøøøøøè è € ð �‰G€EÝŒ?ÑÔ€DÝŒ>ÑÔ€DØð Ý*Ñ,Ô,ˆØœNÐØˆŒØˆˆå˜CÑ Ô ˆØÐØˆð[+ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð ˆŒ	ØˆÔØˆŒØˆŒåÔ(Ñ*Ô*ˆð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 		ð 		ð 		ð 		ð 		ð 		ð 		ð 		õ Ô%Ñ'Ô'ð 	ð 	ð 	ð 	ð 	ð 	ð 	¨7Ý�*ÑÔÐØˆFÝ˜5‘\”\ð /ð /�Ø—’�e™gœgÑ&Ô&Ð&Ø×"Ò" :¨v°b¬zÑ:Ô:Ð:Ý,Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð ð /ÝÐ?Ñ@Ô@Ð@Ø˜Q”i—n’nÑ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ý,Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð ” Ò#Ð# q§|¢|¡~¤~Ô'CÀsÒ'JÐ'Jå˜D‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!ð ” Ò#Ð# q§|¢|¡~¤~Ô'CÀsÒ'JÐ'Jð �HŠH‰JŒJˆJð5	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð8 Ô 3Ò&Ð&Ð&Ð&àð 	"ð Ô# aÒ'Ð'Ý˜D‘k”kÐ!Ð!Ð!Ð!Ð!Ð!Ð!ð Ô# aÒ'Ð'ð Œy˜EÒ!Ð!Ð!Ð!ØŒ} Ò!Ð!Ð!Ð!Ð!à*ˆŒˆˆøÐ*ˆŒÐ*Ð*Ð*Ð*s3   Á*A&J ÃD3HÈJ È
HÈJ È"HÈ#AJ Ê	Jc               ƒ  ó‚   ‡K  — g Š G ˆfd„d¦  «        } t          d„  | ¦   «         ¬¦  «        ƒ d {V —† ‰ddgk    sJ ‚d S )Nc                  ó(   •— e Zd Zdˆ fd„Zdˆ fd„ZdS )	ú?test_run_in_worker_thread_custom_limiter.<locals>.CustomLimiterÚborrowerr    r"   r#   c              “  óD   •K  — ‰                      d¦  «         || _        d S ©NÚacquire©r3   Ú	_borrower©ÚselfrA  r;   s     €r<   Úacquire_on_behalf_ofzTtest_run_in_worker_thread_custom_limiter.<locals>.CustomLimiter.acquire_on_behalf_of5  s$   øè è € Ø�MŠM˜)Ñ$Ô$Ð$Ø%ˆDŒNˆNˆNrI   c                óL   •— ‰                      d¦  «         || j        k    sJ ‚d S )NÚreleaserE  rG  s     €r<   Úrelease_on_behalf_ofzTtest_run_in_worker_thread_custom_limiter.<locals>.CustomLimiter.release_on_behalf_of9  s.   ø€ Ø�MŠM˜)Ñ$Ô$Ð$Ø˜tœ~Ò-Ð-Ð-Ð-Ð-Ð-rI   N©rA  r    r"   r#   ©r$  r%  r&  rI  rL  rN   s   €r<   ÚCustomLimiterr@  4  sQ   ø€ € € € € ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.rI   rO  c                 ó   — d S r[   ra   ra   rI   r<   rb   z:test_run_in_worker_thread_custom_limiter.<locals>.<lambda>?  rc   rI   ©r/  rD  rK  r®   )rO  r;   s    @r<   Ú(test_run_in_worker_thread_custom_limiterrR  /  s‹   øè è € ð €Fð.ð .ð .ð .ð .ð .ð .ñ .ô .ð .õ ˜\˜\°=°=±?´?Ð
CÑ
CÔ
CÐCÐCÐCÐCÐCÐCÐCØ�i Ð+Ò+Ð+Ð+Ð+Ð+Ð+rI   c               ƒ  ó  ‡‡K  — g Š G ˆfd„d¦  «        }  | ¦   «         }t          j        t          d¬¦  «        5 }t          d„ |¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   |j        j        �J ‚‰ddgk    sJ ‚g Ši Št          j        t          d¬¦  «        5 }t          ˆfd	„|¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   t          |j        j        t          ¦  «        sJ ‚‰ddgk    sJ ‚d S )
Nc                  ó(   •— e Zd Zd	ˆ fd„Zd
ˆ fd„ZdS )úCtest_run_in_worker_thread_limiter_error.<locals>.BadCapacityLimiterrA  r    r"   r#   c              “  ó6   •K  — ‰                      d¦  «         d S rC  )r3   rG  s     €r<   rI  zXtest_run_in_worker_thread_limiter_error.<locals>.BadCapacityLimiter.acquire_on_behalf_ofG  s   øè è € Ø�MŠM˜)Ñ$Ô$Ð$Ð$Ð$rI   r   c                óL   •— ‰                      d¦  «         t          d¦  «        ‚)NrK  zrelease on behalf)r3   rR   rG  s     €r<   rL  zXtest_run_in_worker_thread_limiter_error.<locals>.BadCapacityLimiter.release_on_behalf_ofJ  s$   ø€ Ø�MŠM˜)Ñ$Ô$Ð$ÝÐ0Ñ1Ô1Ð1rI   NrM  )rA  r    r"   r   rN  rN   s   €r<   ÚBadCapacityLimiterrU  F  sQ   ø€ € € € € ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2rI   rX  z^release on behalf$rè   c                 ó   — d S r[   ra   ra   rI   r<   rb   z9test_run_in_worker_thread_limiter_error.<locals>.<lambda>Q  ó   € ¨€ rI   rQ  rD  rK  c                 ó   •— ‰ d         S )Nr9   ra   )Úds   €r<   rb   z9test_run_in_worker_thread_limiter_error.<locals>.<lambda>Z  s   ø€ ¨¨3¬€ rI   )rg   rh   rR   r   rÉ   Ú__context__Ú
isinstancerY   )rX  Úbsré   r\  r;   s      @@r<   Ú'test_run_in_worker_thread_limiter_errorr`  C  sÛ  øøè è € Ø€Fð2ð 2ð 2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ð 
Ð	Ñ	Ô	€Bå	Œ•zÐ)?Ð	@Ñ	@Ô	@ð ;ÀGÝ   °rÐ:Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;àŒ=Ô$Ð,Ð,Ð,Ø�i Ð+Ò+Ð+Ð+Ð+Ø€Fð €AÝ	Œ•zÐ)?Ð	@Ñ	@Ô	@ð =ÀGÝ     ¸Ð<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =å�g”mÔ/µÑ:Ô:Ð:Ð:Ð:Ø�i Ð+Ò+Ð+Ð+Ð+Ð+Ð+s#   »A Á A$Á'A$Â"C	Ã	CÃCc              ƒ  ól  K  — dd„}|                       t          j        j        d|¦  «         t	          ¦   «         }|j        dk    sJ ‚t          j        t          ¦  «        5 }t          d	„ ¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   d
t          |j        ¦  «        v sJ ‚|j        dk    sJ ‚d S )NrH  Úobjectr”   r"   r   c                ó    — t          d¦  «        ‚)Nz!the engines canna take it captain)ri   )rH  r”   s     r<   Ú	bad_startz:test_run_in_worker_thread_fail_to_spawn.<locals>.bad_startc  s   € ÝÐ>Ñ?Ô?Ð?rI   Ústart_thread_soonr   c                 ó   — d S r[   ra   ra   rI   r<   rb   z9test_run_in_worker_thread_fail_to_spawn.<locals>.<lambda>m  rZ  rI   Úengines)rH  rb  r”   rb  r"   r   )r  r   r  ÚThreadCacher   r8  rg   rh   ri   r   r›   rÉ   )r  rd  r/  ré   s       r<   Ú'test_run_in_worker_thread_fail_to_spawnri  _  s  è è € ð@ð @ð @ð @ð ×Ò�Ô+Ô7Ð9LÈiÑXÔXÐXå,Ñ.Ô.€GØÔ" aÒ'Ð'Ð'Ð'õ 
Œ•|Ñ	$Ô	$ð /¨Ý   Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /à�˜GœMÑ*Ô*Ð*Ð*Ð*Ð*àÔ" aÒ'Ð'Ð'Ð'Ð'Ð's   Á!BÂBÂBc               ƒ  ór   K  — dd„} t          j        ¦   «         }t          | ¦  «        ƒ d {V —†}||k    sJ ‚d S )Nr"   r�   c                 ó8   — t          t          j        ¦  «        } | S r[   ©r   r   r\   ©Úcallee_tokens    r<   r‘   z5test_trio_to_thread_run_sync_token.<locals>.thread_fnv  ó   € Ý+­EÔ,DÑEÔEˆØÐrI   ©r"   r�   ©r   r\   r   ©r‘   Úcaller_tokenrn  s      r<   Ú"test_trio_to_thread_run_sync_tokenrt  s  ó`   è è € ðð ð ð õ Ô+Ñ-Ô-€LÝ+¨IÑ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6€LØ˜<Ò'Ð'Ð'Ð'Ð'Ð'rI   c               ƒ  ó¤   K  — dd„} t          j        t          d¬¦  «        5  t          | ¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r#   c               “  ó
   K  — d S r[   ra   ra   rI   r<   Úasync_fnz=test_trio_to_thread_run_sync_expected_error.<locals>.async_fn�  rf   rI   zexpected a sync functionrè   rC   )rg   rh   Ú	TypeErrorr   ©rx  s    r<   Ú+test_trio_to_thread_run_sync_expected_errorr{    s¶   è è € ðð ð ð õ 
Œ•yÐ(BÐ	CÑ	CÔ	Cð +ð +Ý  Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   ¢AÁA	ÁA	Útrio_test_contextvarzcontextvars.ContextVar[str]c               ƒ  óš  K  — t          j        ¦   «         } t                               d¦  «         d
d„}t	          |¦  «        ƒ d {V —†\  }}|dk    sJ ‚|| k    sJ ‚dd„}t	          |¦  «        ƒ d {V —†\  }}}t                               ¦   «         }|dk    sJ ‚|dk    sJ ‚|dk    s
J d¦   «         ‚t          j        ¦   «         d	k    sJ ‚d S )Nr–   r"   útuple[str, threading.Thread]c                 óð   — t                                ¦   «         } t          j        t          j        ¦  «        5  t	          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   | t          j        ¦   «         fS r[   )	r|  rñ   rg   rh   ÚsniffioÚAsyncLibraryNotFoundErrorÚcurrent_async_libraryr4   r5   )rÉ   s    r<   rB   z3test_trio_to_thread_run_sync_contextvars.<locals>.f‘  sž   € Ý$×(Ò(Ñ*Ô*ˆÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à•yÔ/Ñ1Ô1Ð2Ð2s   ¸AÁAÁAú!tuple[str, str, threading.Thread]c                 óX  — t                                ¦   «         } t                                d¦  «         t                                ¦   «         }t          j        t
          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   | |t          j	        ¦   «         fS )NÚworker)
r|  rñ   r€   rg   rh   r€  r�  r‚  r4   r5   )Úparent_valueÚinner_values     r<   rç   z3test_trio_to_thread_run_sync_contextvars.<locals>.g›  sÍ   € Ý+×/Ò/Ñ1Ô1ˆÝ× Ò  Ñ*Ô*Ð*Ý*×.Ò.Ñ0Ô0ˆÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ØÝÔ$Ñ&Ô&ð
ð 	
s   Á+BÂBÂBr…  zRThe contextvar value set on the worker would not propagate back to the main threadÚtrio)r"   r~  )r"   rƒ  )r4   r5   r|  r€   r   rñ   r€  r‚  )rG   rB   rÉ   rF   rç   r†  r‡  Úcurrent_values           r<   Ú(test_trio_to_thread_run_sync_contextvarsrŠ  �  s0  è è € ÝÔ*Ñ,Ô,€KÝ×Ò˜VÑ$Ô$Ð$ð3ð 3ð 3ð 3õ !3°1Ñ 5Ô 5Ð5Ð5Ð5Ð5Ð5Ð5Ñ€Eˆ<Ø�FŠ?ˆ?ˆ?ˆ?Ø˜;Ò&Ð&Ð&Ð&ð

ð 

ð 

ð 

õ 5GÀqÑ4IÔ4IÐ.IÐ.IÐ.IÐ.IÐ.IÐ.IÑ+€L�+˜|Ý(×,Ò,Ñ.Ô.€MØ˜6Ò!Ð!Ð!Ð!Ø˜(Ò"Ð"Ð"Ð"Ø˜FÒ"Ð"Ð"ð	ñ #Ô"Ð"õ Ô(Ñ*Ô*¨fÒ4Ð4Ð4Ð4Ð4Ð4rI   c               ƒ  ó  ‡K  — d	d„} t          | ¦  «        ƒ d {V —†}t          |t          ¦  «        sJ ‚d
d„Šd
ˆfd„}t          j        t
          d¬¦  «        5  t          |¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   Úfloatc                 ó8   — t          t          j        ¦  «        } | S r[   )r   r   Úcurrent_time)Ú	trio_times    r<   Úthread_fn_1z3test_trio_from_thread_run_sync.<locals>.thread_fn_1µ  s   € Ý(­Ô);Ñ<Ô<ˆ	ØÐrI   r#   c               “  ó
   K  — d S r[   ra   ra   rI   r<   rx  z0test_trio_from_thread_run_sync.<locals>.async_fn½  rf   rI   c                 ó&   •— t          ‰ ¦  «         d S r[   )r   rz  s   €r<   Úthread_fn_2z3test_trio_from_thread_run_sync.<locals>.thread_fn_2À  s   ø€ Ý˜XÑ&Ô&Ð&Ð&Ð&rI   zexpected a synchronous functionrè   )r"   rŒ  rC   )r   r^  rŒ  rg   rh   ry  )r�  r�  r“  rx  s      @r<   Útest_trio_from_thread_run_syncr”  ²  s   øè è € ðð ð ð õ )¨Ñ5Ô5Ð5Ð5Ð5Ð5Ð5Ð5€IÝ�i¥Ñ'Ô'Ð'Ð'Ð'ðð ð ð ð'ð 'ð 'ð 'ð 'ð 'õ 
Œ•yÐ(IÐ	JÑ	JÔ	Jð .ð .Ý  Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   ÁA<Á<B ÂB c               ƒ  ó  ‡‡K  — g Šd
ˆfd„Šd
ˆˆfd„} t          | ¦  «        ƒ d {V —† ‰ddgk    sJ ‚d
d„}t          j        t          d¬	¦  «        5  t          t          |¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r#   c               “  ó\   •K  — t          j        ¦   «          ‰                      d¦  «         d S )Núback in trio)r   rŽ  r3   rN   s   €r<   Úback_in_trio_fnz2test_trio_from_thread_run.<locals>.back_in_trio_fnÌ  s.   øè è € ÝÔÑÔÐØ�Š�nÑ%Ô%Ð%Ð%Ð%rI   c                 óP   •— ‰                      d¦  «         t          ‰ ¦  «         d S )Nú	in thread)r3   r   )r˜  r;   s   €€r<   r‘   z,test_trio_from_thread_run.<locals>.thread_fnÐ  s)   ø€ Ø�Š�kÑ"Ô"Ð"Ý˜Ñ(Ô(Ð(Ð(Ð(rI   rš  r—  c                 ó   — d S r[   ra   ra   rI   r<   Úsync_fnz*test_trio_from_thread_run.<locals>.sync_fnØ  s   € ØˆrI   zappears to be synchronousrè   rC   )r   rg   rh   ry  r   )r‘   rœ  r˜  r;   s     @@r<   Útest_trio_from_thread_runr�  Ç  s:  øøè è € ð €Fð&ð &ð &ð &ð &ð &ð)ð )ð )ð )ð )ð )ð )õ ˜YÑ
'Ô
'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ø�k >Ð2Ò2Ð2Ð2Ð2ðð ð ð õ 
Œ•yÐ(CÐ	DÑ	DÔ	Dð ;ð ;Ý ¥°'Ñ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s   ÁA;Á;A?ÂA?c               ƒ  ór   K  — dd„} t          j        ¦   «         }t          | ¦  «        ƒ d {V —†}||k    sJ ‚d S )Nr"   r�   c                 ó8   — t          t          j        ¦  «        } | S r[   rl  rm  s    r<   r‘   z.test_trio_from_thread_token.<locals>.thread_fnâ  ro  rI   rp  rq  rr  s      r<   Útest_trio_from_thread_tokenr   ß  ru  rI   c               ƒ  ót   K  — dd„} t          j        ¦   «         }t          | |¦  «        ƒ d {V —†}||k    sJ ‚d S )Nr]   r�   r"   c                ó<   — t          t          j        | ¬¦  «        }|S )Nr0   rl  )r]   rn  s     r<   r‘   z4test_trio_from_thread_token_kwarg.<locals>.thread_fnî  s   € Ý+­EÔ,DÐQVÐWÑWÔWˆØÐrI   )r]   r�   r"   r�   rq  rr  s      r<   Ú!test_trio_from_thread_token_kwargr£  ë  sb   è è € ðð ð ð õ Ô+Ñ-Ô-€LÝ+¨I°|ÑDÔDÐDÐDÐDÐDÐDÐD€LØ˜<Ò'Ð'Ð'Ð'Ð'Ð'rI   c               ƒ  ó    K  — t          j        t          ¦  «        5  t          t          j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r[   ©rg   rh   ri   r   r   rŽ  ra   rI   r<   Útest_from_thread_no_tokenr¦  ÷  s�   è è € õ 
Œ•|Ñ	$Ô	$ð 1ð 1Ý�UÔ/Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s   œAÁAÁ
Ac               ƒ  óB  K  — t                                d¦  «         dd„} t          | ¦  «        ƒ d {V —†\  }}}}}t                                ¦   «         }||cxk    rdk    sn J ‚||cxk    r|cxk    rdk    sn J ‚t	          j        ¦   «         dk    sJ ‚|dk    sJ ‚d S )	Nr–   r"   útuple[str, str, str, str, str]c                 ó*  — t                                ¦   «         } t                                d¦  «         t                                ¦   «         }t          j        t
          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   dd„}t          |¦  «        \  }}t                                ¦   «         }t          j        t
          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   | ||||fS )Nr…  r"   útuple[str, str]c                 óÔ   — t                                ¦   «         } t                                d¦  «         t                                ¦   «         }t          j        ¦   «         dk    sJ ‚| |fS ©NÚback_in_mainrˆ  ©r|  rñ   r€   r€  r‚  ©Úback_parent_valueÚback_current_values     r<   r­  zStest_trio_from_thread_run_sync_contextvars.<locals>.thread_fn.<locals>.back_in_main	  s`   € Ý 4× 8Ò 8Ñ :Ô :ÐÝ ×$Ò$ ^Ñ4Ô4Ð4Ý!5×!9Ò!9Ñ!;Ô!;ÐÝÔ0Ñ2Ô2°fÒ<Ð<Ð<Ð<Ø$Ð&8Ð8Ð8rI   ©r"   rª  )	r|  rñ   r€   rg   rh   r€  r�  r‚  r   )Úthread_parent_valueÚthread_current_valuer­  r°  r±  Úthread_after_values         r<   r‘   z=test_trio_from_thread_run_sync_contextvars.<locals>.thread_fn  s€  € Ý2×6Ò6Ñ8Ô8ÐÝ× Ò  Ñ*Ô*Ð*Ý3×7Ò7Ñ9Ô9ÐÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð	9ð 	9ð 	9ð 	9õ 1EÀ\Ñ0RÔ0RÑ-ÐÐ-Ý1×5Ò5Ñ7Ô7ÐÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð  Ø ØØØð
ð 	
ó$   Á+BÂBÂBÃ#DÄDÄ
Dr…  rˆ  r­  ©r"   r¨  ©r|  r€   r   rñ   r€  r‚  ©r‘   r³  r´  rµ  r°  r±  r‰  s          r<   Ú*test_trio_from_thread_run_sync_contextvarsrº  ÿ  sÿ   è è € Ý×Ò˜VÑ$Ô$Ð$ð
ð 
ð 
ð 
õ@ ! Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ñØØØØØå(×,Ò,Ñ.Ô.€MØÐ/Ð9Ð9Ò9Ð9°6Ò9Ð9Ð9Ð9Ð9Ð9ØÐ#4ÐVÐVÒVÐVÐ8JÐVÐVÒVÐVÈhÒVÐVÐVÐVÐVÐVÝÔ(Ñ*Ô*¨fÒ4Ð4Ð4Ð4Ø Ò/Ð/Ð/Ð/Ð/Ð/rI   c               ƒ  óB  K  — t                                d¦  «         dd„} t          | ¦  «        ƒ d {V —†\  }}}}}t                                ¦   «         }||cxk    rdk    sn J ‚||cxk    r|cxk    rdk    sn J ‚|dk    sJ ‚t	          j        ¦   «         dk    sJ ‚d S )	Nr–   r"   r¨  c                 ó*  — t                                ¦   «         } t                                d¦  «         t                                ¦   «         }t          j        t
          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   dd„}t          |¦  «        \  }}t                                ¦   «         }t          j        t
          j        ¦  «        5  t          j        ¦   «          d d d ¦  «         n# 1 swxY w Y   | ||||fS )Nr…  r"   rª  c               “  óØ   K  — t                                ¦   «         } t                                d¦  «         t                                ¦   «         }t          j        ¦   «         dk    sJ ‚| |fS r¬  r®  r¯  s     r<   Úasync_back_in_mainzTtest_trio_from_thread_run_contextvars.<locals>.thread_fn.<locals>.async_back_in_main4  sd   è è € Ý 4× 8Ò 8Ñ :Ô :ÐÝ ×$Ò$ ^Ñ4Ô4Ð4Ý!5×!9Ò!9Ñ!;Ô!;ÐÝÔ0Ñ2Ô2°fÒ<Ð<Ð<Ð<Ø$Ð&8Ð8Ð8rI   r²  )	r|  rñ   r€   rg   rh   r€  r�  r‚  r   )r³  r´  r¾  r°  r±  rµ  s         r<   r‘   z8test_trio_from_thread_run_contextvars.<locals>.thread_fn-  s�  € Ý2×6Ò6Ñ8Ô8ÐÝ× Ò  Ñ*Ô*Ð*Ý3×7Ò7Ñ9Ô9ÐÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð	9ð 	9ð 	9ð 	9õ 1@Ð@RÑ0SÔ0SÑ-ÐÐ-Ý1×5Ò5Ñ7Ô7ÐÝŒ]�7Ô<Ñ=Ô=ð 	,ð 	,ÝÔ)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð  Ø ØØØð
ð 	
r¶  r…  r­  rˆ  r·  r¸  r¹  s          r<   Ú%test_trio_from_thread_run_contextvarsr¿  *  sÿ   è è € Ý×Ò˜VÑ$Ô$Ð$ð
ð 
ð 
ð 
õ@ ! Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+ñØØØØØå(×,Ò,Ñ.Ô.€MØÐ/Ð9Ð9Ò9Ð9°6Ò9Ð9Ð9Ð9Ð9Ð9ØÐ#4ÐVÐVÒVÐVÐ8JÐVÐVÒVÐVÈhÒVÐVÐVÐVÐVÐVØ Ò/Ð/Ð/Ð/ÝÔ(Ñ*Ô*¨fÒ4Ð4Ð4Ð4Ð4Ð4rI   c                 ó    — t          j        t          ¦  «        5  t          t          j        d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzNot TrioTokentyper0   r¥  ra   rI   r<   Ú3test_run_fn_as_system_task_caught_badly_typed_tokenrÁ  U  s–   € Ý	Œ•|Ñ	$Ô	$ð 
ð 
ÝÝÔØ*ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   šAÁAÁ
Ac               ƒ  ó¾   K  — dd„} t          j        ¦   «         }t          j        t          ¦  «        5  t          | |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r#   c                 ó   — t          ¦   «         ‚r[   )ÚAssertionErrorra   rI   r<   Ú
not_calledz7test_from_thread_inside_trio_thread.<locals>.not_called^  s   € ÝÑÔÐrI   r0   rC   )r   r\   rg   rh   ri   r   )rÅ  r+   s     r<   Ú#test_from_thread_inside_trio_threadrÆ  ]  sÅ   è è € ðð ð ð õ Ô)Ñ+Ô+€JÝ	Œ•|Ñ	$Ô	$ð @ð @Ý˜Z°JÐ?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s   ³AÁAÁAc                 ó–   ‡‡‡— g Šg Šdˆfd„Šdˆˆfd	„} t          j        | d
¦  «         t          j        | d¦  «         ‰ddgk    sJ ‚d S )Nr]   r,   r"   úAsyncGenerator[None, None]c               óœ  •K  — 	 d W V — t          j        d¬¦  «        5  	 t          t          t          t
          d| ¬¦  «        ¦  «        ƒ d {V —† ‰                     d¦  «         n*# t           j        $ r ‰                     d¦  «         Y nw xY wd d d ¦  «         d S # 1 swxY w Y   d S # t          j        d¬¦  «        5  	 t          t          t          t
          d| ¬¦  «        ¦  «        ƒ d {V —† ‰                     d¦  «         n*# t           j        $ r ‰                     d¦  «         Y nw xY wd d d ¦  «         w # 1 swxY w Y   w xY w)NTrú   r   r0   Úcleanrð   )r   r
   r   r   r   r   r3   ÚRunFinishedError)r]   r;   s    €r<   Úagenz2test_from_thread_run_during_shutdown.<locals>.agenj  s0  øè è € ð	+ØˆEˆEˆEˆEåÔ"¨$Ð/Ñ/Ô/ð +ð +ð+Ý,Ý¥µ¸ÀeÐLÑLÔLñô ð ð ð ð ð ð ð ð —M’M 'Ñ*Ô*Ð*Ð*øõ Ô-ð .ð .ð .Ø—M’M *Ñ-Ô-Ð-Ð-Ð-ð.øøøð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +ø•Ô"¨$Ð/Ñ/Ô/ð +ð +ð+Ý,Ý¥µ¸ÀeÐLÑLÔLñô ð ð ð ð ð ð ð ð —M’M 'Ñ*Ô*Ð*Ð*øõ Ô-ð .ð .ð .Ø—M’M *Ñ-Ô-Ð-Ð-Ð-ð.øøøð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +øøøs‡   …B+ ŸB¡0A'ÁBÁ'$BÂBÂBÂBÂB"Â%B"Â+EÃD?Ã0D	Ã3D?Ä	$D0	Ä-D?Ä/D0	Ä0D?Ä3EÄ?EÅEÅEÅEÚuse_system_taskrô   r#   c              “  ó´   •K  — ‰                       ‰| rt          j        ¦   «         nd ¦  «        ¦  «         ‰d                              d ¦  «        ƒ d {V —† d S )Nr3  )r3   r   r\   Úasend)rÍ  rÌ  Úsaves    €€r<   r–   z2test_from_thread_run_during_shutdown.<locals>.mainx  sd   øè è € Ø�Š�D�D°ÐP�Ô1Ñ3Ô3Ð3ÈDÑQÔQÑRÔRÐRØ�2Œh�nŠn˜TÑ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ð"rI   TFrð   rÊ  )r]   r,   r"   rÈ  )rÍ  rô   r"   r#   )r   r�   )r–   rÌ  r;   rÐ  s    @@@r<   Ú$test_from_thread_run_during_shutdownrÑ  f  s’   øøø€ Ø€DØ€Fð+ð +ð +ð +ð +ð +ð#ð #ð #ð #ð #ð #ð #õ 
„Iˆd�DÑÔÐÝ	„Iˆd�EÑÔÐØ�j 'Ð*Ò*Ð*Ð*Ð*Ð*Ð*rI   c               ƒ  ó¬   K  — t          j        ¦   «         } t          | t           j        ¦  «        sJ ‚t	          j        | ¦  «        }|  |¦   «         u sJ ‚d S r[   )r   r\   r^  Ú	TrioTokenÚweakrefÚref)r]   Úweak_references     r<   Ú"test_trio_token_weak_referenceabler×  �  sZ   è è € ÝÔ$Ñ&Ô&€EÝ�e�Uœ_Ñ-Ô-Ð-Ð-Ð-Ý”[ Ñ'Ô'€NØ�N�NÑ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$rI   c               ƒ  óÐ   K  —  G d„ d¦  «        } t          j        t          ¦  «        5  t          t           | ¦   «         ¬¦  «        ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — e Zd Zdd„ZdS )ú4test_unsafe_abandon_on_cancel_kwarg.<locals>.BadBoolr"   rô   c                ó   — t           ‚r[   )ÚNotImplementedError)rH  s    r<   Ú__bool__z=test_unsafe_abandon_on_cancel_kwarg.<locals>.BadBool.__bool__Œ  s   € Ý%Ð%rI   N©r"   rô   )r$  r%  r&  rÝ  ra   rI   r<   ÚBadBoolrÚ  ‹  s(   € € € € € ð	&ð 	&ð 	&ð 	&ð 	&ð 	&rI   rß  r÷   )rg   rh   rÜ  r   rK   )rß  s    r<   Ú#test_unsafe_abandon_on_cancel_kwargrà  ˆ  sä   è è € ð&ð &ð &ð &ð &ñ &ô &ð &õ 
ŒÕ*Ñ	+Ô	+ð Cð CÝ ¥¸¸¹	¼	ÐBÑBÔBÐBÐBÐBÐBÐBÐBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   ©%AÁAÁ"Ac               ƒ  óÈ   K  — t          j        ¦   «         } dd„}| t          t          t           j        ¦  «        ƒ d {V —†u sJ ‚| t          t          |¦  «        ƒ d {V —†u sJ ‚d S )Nr"   ú
_core.Taskc               “  ó,   K  — t          j        ¦   «         S r[   )r   Úcurrent_taskra   rI   r<   Úasync_current_taskz8test_from_thread_reuses_task.<locals>.async_current_task–  s   è è € ÝÔ!Ñ#Ô#Ð#rI   )r"   râ  )r   rä  r   r   r   )Útaskrå  s     r<   Útest_from_thread_reuses_taskrç  “  s‘   è è € ÝÔÑÔ€Dð$ð $ð $ð $ð Õ+Õ,@Å%ÔBTÑUÔUÐUÐUÐUÐUÐUÐUÐUÐUÐUÐUØÕ+­OÐ=OÑPÔPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPÐPrI   c               ƒ  óR   ‡K  — d Šdˆfd„} ‰t          | ¦  «        ƒ d {V —†k    sJ ‚d S )Nr"   rK   c                 óh   •— t          j        ¦   «         Š t          t          t           j        ¦  «        S r[   )r4   rÈ   r   r   )Útids   €r<   Úget_tid_then_reenterz6test_recursive_to_thread.<locals>.get_tid_then_reenter   s%   ø€ åÔ!Ñ#Ô#ˆÝÕ1µ9Ô3FÑGÔGÐGrI   )r"   rK   r®   )rë  rê  s    @r<   Útest_recursive_to_threadrì  �  se   øè è € Ø
€CðHð Hð Hð Hð Hð Hð
 Õ*Ð+?Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ò@Ð@Ð@Ð@Ð@Ð@rI   c               ƒ  óZ  ‡‡‡K  — t          j        ¦   «         Šdˆˆfd„} t          j        ¦   «         5 Št	          | ¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        rJ ‚‰                     ¦   «         rJ ‚t          j        ¦   «         5 Št	          | d¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        sJ ‚t	          t          ‰j        d¬¦  «        ¦  «        ƒ d {V —†rJ ‚dd	„Šdˆˆˆfd
„}t          j        ¦   «         5 Št	          |¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        rJ ‚‰                     ¦   «         rJ ‚t          j        ¦   «         5 Št	          |d¬¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        sJ ‚t	          t          ‰j        d¬¦  «        ¦  «        ƒ d {V —†rJ ‚dˆfd„}t          j        ¦   «         5 Št	          t          |¦  «        ƒ d {V —† d d d ¦  «         n# 1 swxY w Y   ‰j        sJ ‚d S )Nr"   r#   c                 óÚ   •— t          ‰ j        ¦  «         	 t          t          ¦  «         ‰                     d¦  «         d S # t          j        $ r ‰                     d¦  «         Y d S w xY w©NFT)r   r  rô   r  r   r�   )r  Úqueues   €€r<   Ú
sync_checkz3test_from_thread_host_cancelled.<locals>.sync_check«  su   ø€ Ý˜\Ô0Ñ1Ô1Ð1ð	Ý ¥Ñ&Ô&Ð&ð �IŠI�eÑÔÐÐÐøõ Œð 	ð 	ð 	Ø�IŠI�d‰OŒOˆOˆOˆOˆOð	øøøs   —A Á$A*Á)A*Tr÷   rå   ©Útimeoutrô   c               “  ó
   K  — dS ©NTra   ra   rI   r<   Úno_checkpointz6test_from_thread_host_cancelled.<locals>.no_checkpointÀ  s   è è € ØˆtrI   c                 óÖ   •— t          ‰ j        ¦  «         	 t          ‰¦  «        sJ ‚	 ‰                     d¦  «         d S # t          j        $ r ‰                     d¦  «         Y d S w xY wrï  )r   r  r   r  r   r�   )r  rö  rð  s   €€€r<   Úasync_checkz4test_from_thread_host_cancelled.<locals>.async_checkÃ  s~   ø€ Ý˜\Ô0Ñ1Ô1Ð1ð	Ý" =Ñ1Ô1Ð1Ð1Ð1Ð1ð �IŠI�eÑÔÐÐÐøõ Œð 	ð 	ð 	Ø�IŠI�d‰OŒOˆOˆOˆOˆOð	øøøs   —A  Á $A(Á'A(c               “  ó¬   •K  — ‰                       ¦   «          t          d¦  «        5  t          ¦   «         ƒ d {V —† d d d ¦  «         d S # 1 swxY w Y   d S )Nrü   )r  r   r   )r  s   €r<   Úasync_time_bombz8test_from_thread_host_cancelled.<locals>.async_time_bombØ  s¥   øè è € Ø×ÒÑÔÐÝ˜‰^Œ^ð 	"ð 	"Ý‘/”/Ð!Ð!Ð!Ð!Ð!Ð!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   §A	Á	AÁArC   rÞ  )
rý   rþ   r   r
   r   r  Ú
get_nowaitr   rñ   r   )rñ  rø  rú  r  rö  rð  s      @@@r<   Útest_from_thread_host_cancelledrü  ¨  sP  øøøè è € Ý&2Ô&8Ñ&:Ô&:€Eðð ð ð ð ð ð õ 
Ô	Ñ	Ô	ð - Ý  Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð Ô,Ð,Ð,Ð,Ø×ÒÑ!Ô!Ð!Ð!Ð!å	Ô	Ñ	Ô	ð E Ý  ¸tÐDÑDÔDÐDÐDÐDÐDÐDÐDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Ô(Ð(Ð(Ð(Ý'­°´	À1Ð(EÑ(EÔ(EÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFÐFðð ð ð ðð ð ð ð ð ð ð õ 
Ô	Ñ	Ô	ð . Ý  Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð Ô,Ð,Ð,Ð,Ø×ÒÑ!Ô!Ð!Ð!Ð!å	Ô	Ñ	Ô	ð F Ý  ÀÐEÑEÔEÐEÐEÐEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Ô(Ð(Ð(Ð(Ý'­°´	À1Ð(EÑ(EÔ(EÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFÐFð"ð "ð "ð "ð "ð "õ
 
Ô	Ñ	Ô	ð C Ý ¥°/ÑBÔBÐBÐBÐBÐBÐBÐBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Ô(Ð(Ð(Ð(Ð(Ð(sY   ³AÁAÁAÂB6Â6B:Â=B:ÄD6Ä6D:Ä=D:Å3FÆFÆFÇ/HÈHÈHró   r  r
   r;   ú	list[str]rB   úCallable[[], None]c              ƒ  ól  K  — |5  |                      d¦  «         	 t          || ¬¦  «        ƒ d {V —†	 |                      d¦  «         cd d d ¦  «         S # t          j        $ r(}|                      t	          |¦  «        ¦  «         ‚ d }~ww xY w# |                      d¦  «         w xY w# 1 swxY w Y   d S rö   )r3   r   r   r�   r›   )ró   r  r;   rB   rÐ   s        r<   rù   rù   ã  s  è è € ð 
ð "ð "Ø�Š�gÑÔÐð	"Ý+¨AÐARÐSÑSÔSÐSÐSÐSÐSÐSÐSÐSð
 �MŠM˜&Ñ!Ô!Ð!ð"ð "ð "ð "ñ "ô "ð "ð "øõ Œð 	ð 	ð 	Ø�MŠM�#˜a™&œ&Ñ!Ô!Ð!Øøøøøð	øøøøð �MŠM˜&Ñ!Ô!Ð!Ð!øøøð"ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s?   …B)œA³B)ÁBÁ$#BÂBÂBÂB&Â&B)Â)B-Â0B-Úcancel_the_scopec              ƒ  óê  ‡‡K  — t          j        ¦   «         Šdˆˆfd„}g }t          j        ¦   «         Št	          j        ¦   «         }t	          j        ¦   «         4 ƒd {V —†}|                     t          d|||¦  «         t          ¦   «         ƒ d {V —† |d         dk    sJ ‚‰ 
                    d¬¦  «        d	k    sJ ‚| r|                     ¦   «          ‰                     ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   | s|d         d
k    sJ ‚d S |j        sJ ‚t          j        d|d         ¦  «        sJ |d         ¦   «         ‚|d         d
k    sJ ‚t!          |¦  «        dk    sJ ‚d S )Nr"   r#   c                 ó  •— 	 t          ¦   «          ‰                     d¦  «         n># t          j        $ r,} ‰                     t	          | ¦  «        ¦  «         Y d } ~ nd } ~ ww xY w‰                     ¦   «          t          ¦   «         S ©NúNot Cancelled)r   r  r   r�   r›   r•   ©rÐ   r‹   rì   s    €€r<   rB   z6test_from_thread_check_cancelled_no_abandon.<locals>.fø  sˆ   ø€ ð	#Ý'Ñ)Ô)Ð)ð �EŠE�/Ñ"Ô"Ð"Ð"øõ Œð 	ð 	ð 	Ø�EŠE•#�a‘&”&‰MŒMˆMˆMˆMˆMˆMˆMøøøøð	øøøð 	�Š‰	Œ	ˆ	Ý*Ñ,Ô,Ð,s   ƒ' §A"¶"AÁA"Fr   r/   rå   rò  r  rø   zzcancelled due to explicit from task <Task 'trio._tests.test_threads.test_from_thread_check_cancelled_no_abandon' at 0x\w*>r	   rU   rC   )rý   rþ   r4   r   r   r
   rÿ   r   rù   r   rñ   r  r€   r  r¥   Ú	fullmatchÚlen)r   rB   r;   r  r  r‹   rì   s        @@r<   Ú+test_from_thread_check_cancelled_no_abandonr  ô  sN  øøè è € å1=Ô1CÑ1EÔ1E€Að-ð -ð -ð -ð -ð -ð -ð €FÝ	ŒÑ	Ô	€BÝÔÑÔ€EåÔ!Ñ#Ô#ð ð ð ð ð ð ð  wØ×Ò�5 %¨°¸Ñ:Ô:Ð:Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�aŒy˜GÒ#Ð#Ð#Ð#Ø�uŠu˜QˆuÑÔ ?Ò2Ð2Ð2Ð2Øð 	Ø�LŠL‰NŒNˆNØ
�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð  à�aŒy˜FÒ"Ð"Ð"Ð"Ð"Ð"ð
 Ô%Ð%Ð%Ð%ÝŒ|ðfà�1ŒIñ
ô 
ð 	ð 	ð �!Œ9ñ		ô 	ð 	ð
 �aŒy˜FÒ"Ð"Ð"Ð"Ý�6‰{Œ{˜aÒÐÐÐÐÐs   Á BC9Ã9
DÄDc               ƒ  óø  ‡‡K  — t          j        ¦   «         Šdˆˆfd„} g }t          j        ¦   «         Št	          j        ¦   «         }t	          j        ¦   «         4 ƒd {V —†}|                     t          d||| ¦  «         t          ¦   «         ƒ d {V —† |d         dk    sJ ‚| 
                    ¦   «          d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   ‰                     ¦   «          |j        sJ ‚t          j        d|d         ¦  «        sJ |d         ¦   «         ‚|d	         d
k    sJ ‚‰                     d¬¦  «        }t!          |t"          ¦  «        r|‚t          j        d|¦  «        s
J |¦   «         ‚d S )Nr"   r#   c                 óF  •— ‰                      ¦   «          	 t          ¦   «          ‰                     d¦  «         d S # t          j        $ r-} ‰                     t          | ¦  «        ¦  «         Y d } ~ d S d } ~ wt          $ r } ‰                     | ¦  «         Y d } ~ d S d } ~ ww xY wr  )r•   r   r  r   r�   r›   r6   r  s    €€r<   rB   z=test_from_thread_check_cancelled_abandon_on_cancel.<locals>.f%  s²   ø€ Ø
�Š‰	Œ	ˆ	ð		#Ý'Ñ)Ô)Ð)ð �EŠE�/Ñ"Ô"Ð"Ð"Ð"øõ Œð 	ð 	ð 	Ø�EŠE•#�a‘&”&‰MŒMˆMˆMˆMˆMˆMˆMˆMøøøøÝð 	ð 	ð 	ð �EŠE�!‰HŒHˆHˆHˆHˆHˆHˆHˆHøøøøð	øøøs!   —< ¼B Á"A3Á3B Â BÂB Tr   r/   z�cancelled due to explicit from task <Task 'trio._tests.test_threads.test_from_thread_check_cancelled_abandon_on_cancel' at 0x\w*>rå   r3  rø   rò  rC   )rý   rþ   r4   r   r   r
   rÿ   r   rù   r   r  r€   r  r¥   r  rñ   r^  r6   )rB   r;   r  r  Úresr‹   rì   s        @@r<   Ú2test_from_thread_check_cancelled_abandon_on_cancelr     sO  øøè è € Ý1=Ô1CÑ1EÔ1E€Að#ð #ð #ð #ð #ð #ð #ð €FÝ	ŒÑ	Ô	€BÝÔÑÔ€EÝÔ!Ñ#Ô#ð ð ð ð ð ð ð  wØ×Ò�5 $¨¨v°qÑ9Ô9Ð9Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø�aŒy˜GÒ#Ð#Ð#Ð#Ø�Š‰Œˆð	ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ‡F‚F�H„H€HàÔ!Ð!Ð!Ð!ÝŒ<ð	iàˆqŒ	ñô ð ð ð ˆa„yñ	ô ð ð
 �"Œ:˜ÒÐÐÐØ
�%Š%˜ˆ%Ñ
Ô
€CÝ�#•}Ñ%Ô%ð Øˆ	åŒ|ðmàñ
ô 
ð 	ð 	ð ñ		ô 	ð 	ð 	ð 	s   Á ACÃ
CÃCc                 óš  ‡ — t          j        t          ¦  «        5  t          ¦   «          d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         Š t          j        t          ˆ fd„¦  «         t          j        t          ¦  «        5  ‰                      d¬¦  «         	                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                ó.   •— ‰                      | ¦  «        S r[   )r  )r‰   rì   s    €r<   rb   zLtest_from_thread_check_cancelled_raises_in_foreign_threads.<locals>.<lambda>T  s   ø€ À1Ç5Â5ÈÁ8Ä8€ rI   rå   rò  )
rg   rh   ri   r   rý   rþ   r   re  rñ   Úunwrap)rì   s   @r<   Ú:test_from_thread_check_cancelled_raises_in_foreign_threadsr  P  s4  ø€ Ý	Œ•|Ñ	$Ô	$ð &ð &Ý#Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &å-9Ô-?Ñ-AÔ-A€AÝ	ÔÕ7Ð9KÐ9KÐ9KÐ9KÑLÔLÐLÝ	Œ•|Ñ	$Ô	$ð "ð "Ø	�Š�aˆÑÔ×ÒÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   ›6¶:½:Â
)C Ã CÃCc               ƒ  ó,  K  — dd„} t          d¦  «        5  t          j        ¦   «         4 ƒd {V —†}t          d¦  «        D ]}|                     | ¦  «         Œ	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r#   c               “  óP   K  — 	 t          t          t          dd¬¦  «        ƒ d {V —† Œ$)NTr   Fr÷   )r   r   r   ra   rI   r<   rù   z+test_reentry_doesnt_deadlock.<locals>.child_  s<   è è € ð	YÝ$¥_µe¸QÐRWÐXÑXÔXÐXÐXÐXÐXÐXÐXÐXð	YrI   r	   é   rC   )r   r   rÿ   r  r   )rù   r  r‰   s      r<   Útest_reentry_doesnt_deadlockr  Y  s~  è è € ðYð Yð Yð Yõ 
�qÑ	Ô	ð *ð *ÝÔ%Ñ'Ô'ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*¨7Ý˜1‘X”Xð *ð *�Ø×"Ò" 5Ñ)Ô)Ð)Ð)ð*ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s4   –B	°(A+ÁB	Á+
A5	Á5B	Á8A5	Á9B	Â	BÂBc               ƒ  ó€  ‡K  — dŠt          ¦   «         } t          ¦   «         }t          ¦   «         }t          ¦   «         }dd„}dˆfd„}t          j        ¦   «         4 ƒd {V —†}|                     || |¦  «         |                     |||¦  «         t	          ¦   «         ƒ d {V —† |                     |¦  «         t	          ¦   «         ƒ d {V —† ‰rJ ‚t          ¦   «         d	k    sJ ‚|                      ¦   «          |                     ¦   «         ƒ d {V —† t	          ¦   «         ƒ d {V —† ‰rJ ‚t          ¦   «         d
k    sJ ‚|                     ¦   «          |                     ¦   «         ƒ d {V —† t	          ¦   «         ƒ d {V —† ‰sJ ‚t          ¦   «         dk    sJ ‚	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S )NFrÐ   r   Úe_exitr"   r#   c              “  ój   ‡ K  — dˆ fd„}t          |¦  «        ƒ d {V —† |                     ¦   «          d S )Nr"   r#   c                 ó0   •— t          ‰ j        ¦  «         d S r[   )r   r•   )rÐ   s   €r<   r~   zCtest_wait_all_threads_completed.<locals>.wait_event.<locals>.threadr  s   ø€ Ý˜AœFÑ#Ô#Ð#Ð#Ð#rI   rC   )r   r€   )rÐ   r  r~   s   `  r<   Ú
wait_eventz3test_wait_all_threads_completed.<locals>.wait_eventq  sX   øè è € ð	$ð 	$ð 	$ð 	$ð 	$ð 	$õ ! Ñ(Ô(Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ø�
Š
‰ŒˆˆˆrI   c               “  ó8   •K  — t          ¦   «         ƒ d {V —† dŠ d S rõ  )r   )Úno_threads_lefts   €r<   Úwait_no_threads_leftz=test_wait_all_threads_completed.<locals>.wait_no_threads_leftx  s.   øè è € å(Ñ*Ô*Ð*Ð*Ð*Ð*Ð*Ð*Ð*ØˆˆˆrI   r	   rå   r   )rÐ   r   r  r   r"   r#   rC   )r   r   rÿ   r   r   r   r€   r•   )Úe1Úe2Ú	e1_exitedÚ	e2_exitedr  r  r  r  s          @r<   Útest_wait_all_threads_completedr!  i  sµ  øè è € Ø€OÝ	‰Œ€BÝ	‰Œ€Bå‘”€IÝ‘”€Iðð ð ð ðð ð ð ð ð õ
 Ô!Ñ#Ô#ð *ð *ð *ð *ð *ð *ð * wØ×Ò˜: r¨9Ñ5Ô5Ð5Ø×Ò˜: r¨9Ñ5Ô5Ð5Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø×ÒÐ/Ñ0Ô0Ð0Ý$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø"Ð"Ð"Ð"Ý"Ñ$Ô$¨Ò)Ð)Ð)Ð)à
�Š‰ŒˆØ�nŠnÑÔÐÐÐÐÐÐÐÝ$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&Ø"Ð"Ð"Ð"Ý"Ñ$Ô$¨Ò)Ð)Ð)Ð)à
�Š‰ŒˆØ�nŠnÑÔÐÐÐÐÐÐÐÝ$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÝ"Ñ$Ô$¨Ò)Ð)Ð)Ð)Ð)ð'*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   Á!D8F-Æ-
F7Æ:F7c               ƒ  óZ   K  — t          ¦   «         ƒ d {V —† t          ¦   «         dk    sJ ‚d S )Nr   )r   r   ra   rI   r<   Ú*test_wait_all_threads_completed_no_threadsr#  “  sA   è è € Ý
$Ñ
&Ô
&Ð&Ð&Ð&Ð&Ð&Ð&Ð&ÝÑ Ô  AÒ%Ð%Ð%Ð%Ð%Ð%rI   rC   r[   )r±   r²   r"   r³   )r
  r  r  r  r"   r#   )r  rK   r  rô   r  rô   r"   r#   )r  r  r"   r#   )
ró   rô   r  r
   r;   rý  rB   rþ  r"   r#   )r   rô   r"   r#   )fÚ
__future__r   Úcontextvarsrð  rý   r¥   ro   r4   r  rÔ  Ú	functoolsr   Útypingr   r   r   rg   r€  r¨   r
   r   r   r   r   r   r   r   Ú_core._tests.test_kir   Ú_core._tests.tutilr   Ú_threadsr   r   r   r   r   r   r   Útestingr   Úcollections.abcr   r   r   Úoutcomer   Úlowlevelr    ÚlistÚtupler›   rD   r8   r6   rJ   r!   r^   rj   r‚   r—   r°   rÑ   rÜ   rá   rê   r	  r  ÚmarkÚparametrizer=  rR  r`  ri  rt  r{  Ú
ContextVarr|  r'  rŠ  r”  r�  r   r£  r¦  rº  r¿  rÁ  rÆ  rÑ  r×  rà  rç  rì  rü  rù   r  r  r  r  r!  r#  ra   rI   r<   ú<module>r4     sM  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð €€€Ø €€€ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð +Ð *Ð *Ð *Ð *Ð *Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð -Ð ,Ð ,Ð ,Ð ,Ð ,àð  ØCÐCÐCÐCÐCÐCÐCÐCÐCÐCàÐÐÐÐÐàÐÐÐÐÐà�%˜˜YÔ-°°]Ô0CÑCÐCÔDÔE€
Ø€GˆC�L„L€ð9Qð 9Qð 9Qð 9Qðxð ð ð ð-$ð -$ð -$ð -$ð`/ð /ð /ð /ð8#ð #ð #ð #ð:'Eð 'Eð 'Eð 'Eð 'Eð\ 1ð  1ð  1ð  1ðF@ð @ð @ð @ð0ð 0ð 0ð 0ð,6"ð 6"ð 6"ð 6"ðx#,ð #,ð #,ð #,ðL „×Ò˜ 
 
 
Ñ+Ô+Ø„×Ò˜ E¨4 =Ñ1Ô1Ø„×ÒÐ.°¸°Ñ>Ô>ðq+ð q+ð q+ñ ?Ô>ñ 2Ô1ñ ,Ô+ðq+ðh,ð ,ð ,ð ,ð(,ð ,ð ,ð ,ð8(ð (ð (ð (ð(	(ð 	(ð 	(ð 	(ð+ð +ð +ð +ð 5K°KÔ4JØñ5ô 5Ð ð ð ð ñ ð
"5ð "5ð "5ð "5ðJ.ð .ð .ð .ð*;ð ;ð ;ð ;ð0	(ð 	(ð 	(ð 	(ð	(ð 	(ð 	(ð 	(ð1ð 1ð 1ð 1ð(0ð (0ð (0ð (0ðV(5ð (5ð (5ð (5ðV
ð 
ð 
ð 
ð@ð @ð @ð @ð+ð +ð +ð +ð6%ð %ð %ð %ðCð Cð Cð CðQð Qð Qð QðAð Að Að Að8)ð 8)ð 8)ð 8)ðv"ð "ð "ð "ð" „×ÒÐ+¨e°T¨]Ñ;Ô;ð( ð ( ð ( ñ <Ô;ð( ðV-ð -ð -ð -ð`"ð "ð "ð "ð ð*ð *ð *ñ „ð*ð'*ð '*ð '*ð '*ðT&ð &ð &ð &ð &ð &rI   