
    ^h                        S SK Jr  S SKr\R                  S:X  d   eS SKJr  SSKJr  \(       d  S SKJr  S SK	J
r
JrJr  S S	KJr  S
S/rSrSr\4SS jjrSS jrg)    )annotationsNwin32)pointer   )SPHINX_AUTODOC_RUNNING)windll)BOOLDWORDHANDLE)SECURITY_ATTRIBUTESwait_for_handlescreate_win32_eventi  c                    [         [        U 5      -  nU" U 6 n[        R                  R	                  [        U5      U[        S5      [        U5      5      nU[        :X  a  gX   $ )a`  
Waits for multiple handles. (Similar to 'select') Returns the handle which is ready.
Returns `None` on timeout.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms687025(v=vs.85).aspx

Note that handles should be a list of `HANDLE` objects, not integers. See
this comment in the patch by @quark-zju for the reason why:

    ''' Make sure HANDLE on Windows has a correct size

    Previously, the type of various HANDLEs are native Python integer
    types. The ctypes library will treat them as 4-byte integer when used
    in function arguments. On 64-bit Windows, HANDLE is 8-byte and usually
    a small integer. Depending on whether the extra 4 bytes are zero-ed out
    or not, things can happen to work, or break. '''

This function returns either `None` or one of the given `HANDLE` objects.
(The return value can be tested with the `is` operator.)
FN)r   lenr   kernel32WaitForMultipleObjectsr	   r
   WAIT_TIMEOUT)handlestimeoutarrtypehandle_arrayrets        X/home/james-whalen/.local/lib/python3.13/site-packages/prompt_toolkit/eventloop/win32.pyr   r      s[    ( s7|#GG$L55L<eeGnC l|    c            	         [        [        R                  R                  [	        [        5       5      [        S5      [        S5      S5      5      $ )zp
Creates a Win32 unnamed Event .
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682396(v=vs.85).aspx
TFN)r   r   r   CreateEventAr   r   r	    r   r   r   r   <   s@    
 $$')*JK		
 r   )r   zlist[HANDLE]r   intreturnzHANDLE | None)r    r   )
__future__r   sysplatformctypesr   utilsr   r   ctypes.wintypesr	   r
   r   prompt_toolkit.win32_typesr   __all__r   INFINITEr   r   r   r   r   <module>r*      s\    " 

||w   *  / / :3
4  <D Br   