mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
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();
 |