Details
Description
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);
Attachments
Issue Links
- relates to
-
QTBUG-68169 [REG-5.0->5.1] [Windows] PowerShell script started via QProcess freezes in certain conditions
- Closed