Ë
    _§1h0  ã                   ó¦  — 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 ddl	m
Z
mZ ddlmZ ej                  dk7  rej                  dk7  serJ ‚	 d d	lmZ d
eddfd„Z e
ej2                  «      Zd
ededdfd„Zdd„Zy# e$ rL d dlZ ej(                  «       Zej-                  d«       ej/                  d«      j                  Zd
eddfd„ZY Œqw xY w)é    N)ÚTYPE_CHECKINGé   )Ú_coreÚ_subprocess)ÚCapacityLimiterÚEvent)Úto_thread_run_syncÚwin32Údarwin)ÚwaitidÚpidÚreturnc                 óx   — t        t        j                  | t        j                  t        j                  z  «       y ©N)r   ÚosÚP_PIDÚWEXITEDÚWNOWAIT)r   s    ú^/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/trio/_subprocess_platform/waitid.pyÚsync_wait_reapabler      s   € ÜŒr�x‰x˜œbŸj™j¬2¯:©:Ñ5Õ6ó    zâ
typedef struct siginfo_s {
    int si_signo;
    int si_errno;
    int si_code;
    int si_pid;
    int si_uid;
    int si_status;
    int pad[26];
} siginfo_t;
int waitid(int idtype, int id, siginfo_t* result, int options);
c                 ó  — d}d}t         j                  dk(  rd}nd}t        j                  d«      }t	        || |||z  «      dk  rCt        j
                  }|t
        j                  k(  rŒ8t        |t        j                  |«      «      ‚y )Né   é   r   é    i   zsiginfo_t *r   )
ÚsysÚplatformÚ
waitid_ffiÚnewÚwaitid_cffiÚerrnoÚEINTRÚOSErrorr   Ústrerror)r   r   r   r   ÚresultÚ	got_errnos         r   r   r   /   s€   € ØˆØˆÜ�<‰<˜8Ò#ð !‰Gà ˆGÜ—‘ Ó.ˆÜ˜%  f¨g¸Ñ.?Ó@À1ÒDÜ"×(Ñ(ˆIØœEŸK™KÒ'ØÜ˜)¤R§[¡[°Ó%;Ó<Ð<ð	 Er   Úeventc              ƒ   ó¸   K  — 	 t        t        | dt        ¬«      ƒ d{  –—†  |j	                  «        y7 Œ# t        $ r Y Œw xY w# |j	                  «        w xY w­w)zdSpawn a thread that waits for ``pid`` to exit, then wake any tasks
    that were waiting on it.
    T)Úabandon_on_cancelÚlimiterN)r	   r   Úwaitid_limiterr#   Úset)r   r'   s     r   Ú_waitid_system_taskr-   G   sZ   è ø€ ðÜ ÜØØ"Ü"ô	
÷ 	
ð 	
ð 	�	‰	�ð	
ùô ò ñ 	ðûð 	�	‰	�üs<   ‚A„6 ž4Ÿ6 £A´6 ¶	A¿A ÁAÁA ÁAÁAc              ƒ   ó  K  — | j                   €6t        «       x| _         }t        j                  t        | j
                  |«       t        | j                   t        «      sJ ‚| j                   j                  «       ƒ d {  –—†  y 7 Œ­wr   )Ú_wait_for_exit_datar   r   Úspawn_system_taskr-   r   Ú
isinstanceÚwait)Úprocessr'   s     r   Úwait_child_exitingr4   b   sh   è ø€ ð ×"Ñ"Ð*Ü.3«gÐ5ˆÔ# eÜ×ÑÔ 3°W·[±[À%ÔHÜ�g×1Ñ1´5Ô9Ð9Ð9Ø
×
%Ñ
%×
*Ñ
*Ó
,×,Ò,ús   ‚A<BÁ>BÁ?B)r3   z_subprocess.Processr   N)r!   Úmathr   r   Útypingr   Ú r   r   Ú_syncr   r   Ú_threadsr	   r   r   Úintr   ÚImportErrorÚcffiÚFFIr   ÚcdefÚdlopenr    Úinfr+   r-   r4   © r   r   ú<module>rB      sé   ðÛ Û Û 	Û 
Ý  ç !ß *Ý )à�‰˜Ò C§L¡L°HÒ$<Á]Ð RÐRð1=Ýð7 ð 7¨ó 7ñh ! §¡Ó*€ð 3ð ¨uð ¸ó ô6-øð_ ò +=ó à�—‘“€Jð ‡O�Oð	ôð ×#Ñ# DÓ)×0Ñ0€Kð= ð =¨õ =ð9+=ús   ÁA? Á?ACÃC