mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +00:00
win: open child stdio handles in overlapped-mode (#8113)
This will be used e.g. by the python client for native asyncio support
This commit is contained in:
committed by
Justin M. Keyes
parent
a369385009
commit
009ccfe170
33
third-party/patches/libuv-overlapped.patch
vendored
Normal file
33
third-party/patches/libuv-overlapped.patch
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
diff --git a/include/uv.h b/include/uv.h
|
||||
index cdd251d8..79b7930e 100644
|
||||
--- a/include/uv.h
|
||||
+++ b/include/uv.h
|
||||
@@ -865,7 +865,8 @@ typedef enum {
|
||||
* flags may be specified to create a duplex data stream.
|
||||
*/
|
||||
UV_READABLE_PIPE = 0x10,
|
||||
- UV_WRITABLE_PIPE = 0x20
|
||||
+ UV_WRITABLE_PIPE = 0x20,
|
||||
+ UV_OVERLAPPED_PIPE = 0x40
|
||||
} uv_stdio_flags;
|
||||
|
||||
typedef struct uv_stdio_container_s {
|
||||
diff --git a/src/win/process-stdio.c b/src/win/process-stdio.c
|
||||
index 032e3093..b53bdea7 100644
|
||||
--- a/src/win/process-stdio.c
|
||||
+++ b/src/win/process-stdio.c
|
||||
@@ -131,12 +131,13 @@ static int uv__create_stdio_pipe_pair(uv_loop_t* loop,
|
||||
sa.lpSecurityDescriptor = NULL;
|
||||
sa.bInheritHandle = TRUE;
|
||||
|
||||
+ BOOL overlap = server_pipe->ipc || (flags & UV_OVERLAPPED_PIPE);
|
||||
child_pipe = CreateFileA(pipe_name,
|
||||
client_access,
|
||||
0,
|
||||
&sa,
|
||||
OPEN_EXISTING,
|
||||
- server_pipe->ipc ? FILE_FLAG_OVERLAPPED : 0,
|
||||
+ overlap ? FILE_FLAG_OVERLAPPED : 0,
|
||||
NULL);
|
||||
if (child_pipe == INVALID_HANDLE_VALUE) {
|
||||
err = GetLastError();
|
||||
Reference in New Issue
Block a user