
    ,h!                    T    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y)	    )annotationsN   )CData
ErrorCodes_handleffihandle_arraykernel32raise_winerrorc           	     t  K   t        |       }t        j                  |d      }|t        j                  k(  rt                n|t        j                  k7  ryt        j                  t        j                  ddt        j                        }	 t        j                  j                  t        ||dt        j                  t        j                                d{    t        j"                  |       t        j$                  |       y7 /# t        j"                  |       t        j$                  |       w xY w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)objhandleretcodecancel_handles       W/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/_wait_for_object.pyr   r      s      S\F
 **615G*(((	J++	+ ))#((D%JM,nn%%'"((2 & 
 	
 	
 	-(]+	
 	-(]+s1   BD8AD	 DD	 +D8D	 	,D55D8c                     t        |       }t        |      }t        |      D ]
  }| |   ||<    d}t        j                  ||d|      }|t
        j                  k(  rt                yy)z9Wait for any of the given Windows handles to be signaled.l    FN)lenr	   ranger
   WaitForMultipleObjectsr   r   r   )handlesn
handle_arritimeoutr   s         r!   r   r   :   sh    GAaJ1X #

1#G--aUGLG*((( )    )r   int | CDatareturnNone)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+   