
     f!                    V    d dl 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 dd	ZddZdS )    )annotationsN   )CData
ErrorCodes_handleffihandle_arraykernel32raise_winerrorobjint | CDatareturnNonec           	     L  K   t          |           }t          j        |d          }|t          j        k    rt                       n|t          j        k    rdS t          j        t          j	        ddt          j	                  }	 t          j                            t          ||dt          j        t          j                             d{V  t          j        |           t          j        |           dS # t          j        |           t          j        |           w xY w)zAsync and cancellable variant of WaitForSingleObject. Windows only.

    Args:
      handle: A Win32 handle, as a Python integer.

    Raises:
      OSError: If the handle is invalid, e.g. when it is already closed.

    r   NTF)abandon_on_cancellimiter)r   r
   WaitForSingleObjectr   WAIT_FAILEDr   WAIT_TIMEOUTCreateEventAr   NULLtrio	to_threadrun_syncWaitForMultipleObjects_syncCapacityLimitermathinfSetEventCloseHandle)r   handleretcodecancel_handles       X/var/www/api.educacionweb.es/myenv/lib/python3.11/site-packages/trio/_wait_for_object.pyr   r      s&      S\\F
 *6155G*(((	J+	+	+ )#(D%JJM,n%%'"(22 & 
 
 	
 	
 	
 	
 	
 	
 	
 	-(((]+++++ 	-(((]++++s   AC9 9*D#handlesc                     t          |           }t          |          }t          |          D ]}| |         ||<   d}t          j        ||d|          }|t
          j        k    rt                       dS dS )z9Wait for any of the given Windows handles to be signaled.l    FN)lenr	   ranger
   WaitForMultipleObjectsr   r   r   )r%   n
handle_arritimeoutr"   s         r$   r   r   :   s    GAaJ1XX # #

1G-aUGLLG*((( )(    )r   r   r   r   )r%   r   r   r   )
__future__r   r   r   _core._windows_cffir   r   r   r   r	   r
   r   r   r    r.   r$   <module>r2      s    " " " " " "                   %, %, %, %,P	 	 	 	 	 	r.   