Hi Eric,
On 12/6/21 3:59 PM, Eric Pouech wrote:
currently, conhost delays the start of the input thread until the first console read operation
some PE executables (like mingw's gdb port) just do something like:
- WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), INFINITE) and hang for ever (the read operations are done*after* the wait operation succeeds)
(of course, the real wait operation is more complex, but the problematic part boils down to that)
I understand that the delay has been introduced so that executables still reading directly from the unix fd will continue to work.
But I could miss some other use cases.
The idea is that it's better to not change console parameters (IOCTL_CONDRV_SETUP_INPUT) unless we need to. Majority of applications never read from console and this avoids changing current console mode every time you run Wine.
This patch forces the start the tty input thread in conhost if current executable is a PE executable.
Maybe we could detect the problem in server somewhere around console_input_add_queue and send an ioctl to conhost process to initialize input thread.
This lets mingw's gdb work a bit further (at least allowing some user input <g>) under wine. (x86_64 seems to be quite ok, i686 still needs come cudling)
Nice :)
Thanks,
Jacek