
    Mh                        d dl mZ d dlZej        dk    sJ d dlmZ ddlmZ esd dlmZ d dl	m
Z
mZmZ d d	lmZ d
dgZdZdZefddZddZdS )    )annotationsNwin32)pointer   )SPHINX_AUTODOC_RUNNING)windll)BOOLDWORDHANDLE)SECURITY_ATTRIBUTESwait_for_handlescreate_win32_eventi  handleslist[HANDLE]timeoutintreturnHANDLE | Nonec                    t           t          |           z  } ||  }t          j                            t          |          |t          d          t          |                    }|t          k    rdS | |         S )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)r   r   arrtypehandle_arrayrets        ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/prompt_toolkit/eventloop/win32.pyr   r      sp    ( s7||#G7G$L55L<eeGnn C lts|    r   c            	         t          t          j                            t	          t                                t          d          t          d          d                    S )z|
    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   <   sR    
 $$'))**JJKK		
 	
  r   )r   r   r   r   r   r   )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   