)L iddlmZddlZejdk(sJddlmZddlmZesddlmZddl m Z m Z m Z dd l mZd d gZd Zd ZefddZddZy)) annotationsNwin32)pointer)SPHINX_AUTODOC_RUNNING)windll)BOOLDWORDHANDLE)SECURITY_ATTRIBUTESwait_for_handlescreate_win32_eventictt|z}||}tjj t||t dt |}|tk(ry||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 lenrkernel32WaitForMultipleObjectsr r WAIT_TIMEOUT)handlestimeoutarrtype handle_arrayrets d/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/prompt_toolkit/eventloop/win32.pyr r s](s7|#GG$L55 L<eeGnC ls|c ttjjt t t dt ddS)z| Creates a Win32 unnamed Event . http://msdn.microsoft.com/en-us/library/windows/desktop/ms682396(v=vs.85).aspx TFN)r rr CreateEventArr r rrrr<s@ $$ ') * J K    r)rz list[HANDLE]rintreturnz HANDLE | None)r r ) __future__rsysplatformctypesrutilsrrctypes.wintypesr r r prompt_toolkit.win32_typesr __all__rINFINITEr rrrrr*s\"  ||w*//: 3 4