Ë
    _§1h  ã                  óD  — d dl mZ d dlZd dlmZ d dlZddlmZ ddlm	Z	m
Z
 ej                  j                  ej                  dk7  d¬	«      Zej                  dk(  serJ ‚ej                  dk(  rd d
lmZ ddlmZmZ ddlmZm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é   )Ú_core)Úcheck_one_way_streamÚwait_all_tasks_blockedÚwin32zwindows only)Úreason)Úpipe)Ú_handleÚkernel32)ÚPipeReceiveStreamÚPipeSendStreamc               ƒ  óP   K  — t        «       \  } }t        |«      t        | «      fS ­w)zMakes a new pair of pipes.)r   r   r   )ÚrÚws     ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_tests/test_windows_pipes.pyÚ	make_piper      s'   è ø€ ä‹V�F€QˆÜ˜!ÓÔ/°Ó2Ð2Ð2ùs   ‚$&c                 óè   — t        j                  t        «      5  t        d«       d d d «       t        j                  t        «      5  t	        d «       d d d «       y # 1 sw Y   Œ7xY w# 1 sw Y   y xY w)Ng      ð?)ÚpytestÚraisesÚ	TypeErrorr   r   © ó    r   Útest_pipe_typecheckr      sY   € Ü	�‰”yÓ	!ñ Ü�sÔ÷ä	�‰”yÓ	!ñ  Ü˜$Ô÷ ð  ÷ð ú÷ ð  ús   šAÁA(ÁA%Á(A1c               ƒ  óú  K  — t        «       \  } }t        |«      }t        | «      }t        j                  t        | «      «      sJ ‚t        j                  t        |«      «      sJ ‚t        j                  t        d¬«      5  |j                  «       ƒ d {  –—†  d d d «       t        j                  t        d¬«      5  |j                  «       ƒ d {  –—†  d d d «       y 7 ŒI# 1 sw Y   ŒHxY w7 Œ# 1 sw Y   y xY w­w)Nz&^\[WinError 6\] The handle is invalid$)Úmatch)
r   r   r   r   ÚCloseHandler   r   r   ÚOSErrorÚaclose)r   r   Úsend_streamÚreceive_streams       r   Útest_pipe_error_on_closer#   &   sÑ   è ø€ ä‹6�D€A€qä  Ó#€KÜ& qÓ)€Nä×Ñ¤¨£
Ô+Ð+Ð+Ü×Ñ¤¨£
Ô+Ð+Ð+ä	�‰”wÐ&OÔ	Pñ #Ø× Ñ Ó"×"Ð"÷#ä	�‰”wÐ&OÔ	Pñ &Ø×#Ñ#Ó%×%Ð%÷&ð &ð 	#ø÷#ð #úð 	&ø÷&ð &üsZ   ‚A?C;ÂC!ÂCÂC!Â#C;Â=C/ÃC-ÃC/Ã	C;ÃC!Ã!C*Ã&C;Ã-C/Ã/C8Ã4C;c               ƒ  ó:  ‡‡‡‡K  — t        «       ƒ d {  –—† \  ŠŠdŠdŠdˆˆˆfd„} dˆˆˆfd„}t        j                  «       4 ƒd {  –—† }|j                  | «       |j                  |«       d d d «      ƒd {  –—†  y 7 Œk7 Œ97 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­w)Ni   é   c               “  óâ   •K  — ‰4 ƒd {  –—†  t        ‰«      } t        ‰«      D ]  }‰j                  | «      ƒ d {  –—†  Œ d d d «      ƒd {  –—†  y 7 ŒI7 Œ7 Œ	# 1 ƒd {  –—†7  sw Y   y xY w­w©N)Ú	bytearrayÚrangeÚsend_all)ÚbigÚ_ÚcountÚreplicasÚwrites     €€€r   Úsenderz#test_pipes_combined.<locals>.sender;   sn   øè ø€ Ø÷ 	*ñ 	*Ü˜EÓ"ˆCÜ˜8“_ò *�Ø—n‘n SÓ)×)Ñ)ð*÷	*÷ 	*ñ 	*øð *øð	*ø÷ 	*÷ 	*ñ 	*üsT   ƒA/ŠA‹A/Ž.A¼A½AÁA/ÁAÁA/ÁAÁA/ÁA,Á A#Á!A,Á(A/c               “  ó  •K  — ‰4 ƒd {  –—†  t        «       ƒ d {  –—†  d} 	 t        ‰j                  d«      ƒ d {  –—† «      }|sn| |z  } Œ+| ‰‰z  k(  sJ ‚d d d «      ƒd {  –—†  y 7 Œ_7 ŒO7 Œ07 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nr   iˆ  )r   ÚlenÚreceive_some)Útotal_receivedÚreceivedr-   Úreadr.   s     €€€r   Úreaderz#test_pipes_combined.<locals>.readerA   s™   øè ø€ Ø÷ 
	6ñ 
	6Ü(Ó*×*Ð*ØˆNØä T×%6Ñ%6°tÓ%<×<Ó=�ÙØØ (Ñ*�ð ð " U¨XÑ%5Ò5Ð5Ð5÷
	6÷ 
	6ñ 
	6øØ*øð  =øð
	6ø÷ 
	6÷ 
	6ñ 
	6üsd   ƒBŠA*‹BŽA2œA,� A2½A.
¾A2ÁBÁ$A0Á%BÁ,A2Á.A2Á0BÁ2BÁ8A;Á9BÂ B©ÚreturnÚNone)r   r   Úopen_nurseryÚ
start_soon)r0   r7   Únr-   r6   r.   r/   s      @@@@r   Útest_pipes_combinedr>   6   s‹   ûè ø€ Ü!›×#�K€Eˆ4Ø€EØ€H÷*÷6ô ×!Ñ!Ó#÷ ð  qØ	�‰�VÔØ	�‰�VÔ÷÷ ð ð/ $øð.øð ø÷ ÷ ñ üsW   †B”B •3BÁBÁ	BÁ#BÁ/BÁ:BÁ;BÂBÂBÂBÂBÂBÂBc               ƒ  óX  K  — t        «       ƒ d {  –—† \  } }| 4 ƒd {  –—†  |4 ƒd {  –—†  	 d d d «      ƒd {  –—†  d d d «      ƒd {  –—†  t        j                  t        j                  «      5  | j                  d«      ƒ d {  –—†  d d d «       t        j                  t        j                  «      5  |j                  d«      ƒ d {  –—†  d d d «       y 7 ŒÉ7 Œ½7 Œ´7 Œ¥# 1 ƒd {  –—†7  sw Y   ŒµxY w7 Œ¬# 1 ƒd {  –—†7  sw Y   Œ¼xY w7 Œ†# 1 sw Y   Œ…xY w7 ŒO# 1 sw Y   y xY w­w)Nr   é
   )r   r   r   r   ÚClosedResourceErrorr*   r3   )r   r   s     r   Útest_async_withrB   S   s  è ø€ Ü“×�D€A€qØ÷ ñ �!÷ ñ Ø÷÷ ÷ ÷ ô 
�‰”u×0Ñ0Ó	1ñ Ø�j‰j˜‹o×Ð÷ä	�‰”u×0Ñ0Ó	1ñ !Ø�n‰n˜RÓ × Ð ÷!ð !ð øðøð øð ø÷ ÷ ñ úð ø÷ ÷ ñ úð 	ø÷ð úð 	!ø÷!ð !üsé   ‚D*�C‘D*žCŸD*¢C9©CªC9­C"¯C9ºC »C9¿D*Á
C7Á'D*Á2DÂDÂDÂ+D*Â7DÃDÃDÃ
D*ÃD*ÃC9Ã C9Ã"C4	Ã(C+Ã)C4	Ã0C9Ã7D*Ã9DÃ?DÄ DÄD*ÄDÄDÄD*ÄDÄD'Ä#D*c               ƒ  óT  ‡K  — t        «       ƒ d {  –—† \  Š} t        j                  «       4 ƒd {  –—† }dˆfd„}|j                  |«       t	        d«      ƒ d {  –—†  ‰j                  «       ƒ d {  –—†  d d d «      ƒd {  –—†  y 7 Œw7 ŒY7 Œ17 Œ7 Œ# 1 ƒd {  –—†7  sw Y   y xY w­w)Nc               “  óÚ   •K  — t        j                  t        j                  «      5 } 	 ‰j	                  d«      ƒ d {  –—†  Œ7 Œ# 1 sw Y   nxY wdt         j                  «      v sJ ‚y ­w)Ns   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzanother task)r   r   r   rA   r*   ÚstrÚvalue)Úexcinfor   s    €r   Úwrite_foreverz.test_close_during_write.<locals>.write_foreverb   sb   øè ø€ Ü—‘œu×8Ñ8Ó9ð 2¸WØØŸ*™* [Ó1×1Ð1ð Ø1ø÷2ð 2úð "¤S¨¯©Ó%7Ñ7Ð7Ñ7ùs    ƒ$A+§A½A¾AÁAÁ
!A+gš™™™™™¹?r8   )r   r   r;   r<   r   r    )Ú_rÚnurseryrH   r   s      @r   Útest_close_during_writerK   ^   s™   øè ø€ Ü“+×�E€A€rÜ×!Ñ!Ó#÷ 
ð 
 wõ	8ð 	×Ñ˜=Ô)Ü$ SÓ)×)Ð)Ø�h‰h‹j×Ð÷
÷ 
ð 
ð øð
øð 	*øØøð
ø÷ 
÷ 
ñ 
üsx   ƒB(‘B	’B(±B²B(µ&BÁBÁBÁ3BÁ4BÁ8B(ÂBÂB(ÂB(ÂBÂBÂB(ÂB%ÂBÂB%Â!B(c               ƒ  ó@   K  — t        t        d «      ƒ d {  –—†  y 7 Œ­wr'   )r   r   r   r   r   Útest_pipe_fullyrM   m   s   è ø€ ô œy¨$Ó
/×/Ò/ús   ‚–—)r9   z(tuple[PipeSendStream, PipeReceiveStream]r8   )Ú
__future__r   ÚsysÚtypingr   r   Ú r   Útestingr   r   ÚmarkÚskipifÚplatformÚ
pytestmarkÚasyncio.windows_utilsr   Ú_core._windows_cffir   r   Ú_windows_pipesr   r   r   r   r#   r>   rB   rK   rM   r   r   r   ú<module>rZ      s�   ðÝ "ã 
Ý  ã å ß Bð �[‰[×Ñ §¡°Ñ 7ÀÐÓO€
ð ‡L�L�GÒ¡=ðØ0ð ‡<�<�7ÒÝ*ç7ßBó3ó ó&ó ó:!óô0r   