In qprocess_win.cpp, in qt_create_pipe the pipes are only created as output channels.
I had to change the windows system calls from this:
hRead = CreateNamedPipe(
pipeName,
PIPE_ACCESS_INBOUND | FILE_FLAG_OVERLAPPED,
dwPipeFlags,
1, // only one pipe instance
0, // output buffer size
dwPipeBufferSize, // input buffer size
0,
&secAtt);
hWrite = CreateFile(
pipeName,
GENERIC_WRITE,
0,
&secAtt,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
to this:
hRead = CreateNamedPipe(
pipeName,
( isInputPipe ? PIPE_ACCESS_OUTBOUND : PIPE_ACCESS_INBOUND ) |
FILE_FLAG_OVERLAPPED,
dwPipeFlags,
1, // only one pipe instance
dwPipeBufferSize, // output buffer size
dwPipeBufferSize, // input buffer size
0,
&secAtt);
hWrite = CreateFile(
pipeName,
isInputPipe ? GENERIC_READ | FILE_WRITE_ATTRIBUTES :
GENERIC_WRITE,
0,
&secAtt,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
- relates to
-
QTBUG-68169 [REG-5.0->5.1] [Windows] PowerShell script started via QProcess freezes in certain conditions
-
- Closed
-