Patch ntdll/kernel32: #27 take III, possible console regression
Jukka Heinonen
jhei at iki.fi
Sun Jun 22 04:07:52 CDT 2003
It seems that this patch (ntdll/kernel32: #27 take III) makes
console input handles use edge triggered semantics. Which means
that these handles only signal when new input is queued and not
when console input buffer has unread data.
This breaks winedos console handling, which would have
been rather easy to fix if I had not found out that MSDN
quite clearly states that console input handles use level
triggered semantics:
http://msdn.microsoft.com/library/en-us/dllproc/base/synchronization_objects.asp:
Console input:
Created when a console is created. The handle to console input is
returned by the CreateFile function when CONIN$ is specified, or by
the GetStdHandle function. Its state is set to signaled when there is
unread input in the console's input buffer, and set to nonsignaled when
the input buffer is empty.
So, it looks like the kernel patch is wrong and introduces a regression.
It could be that MSDN documentation is incorrect but I would like to see
some test reports before I'm prepared to believe that. As far as I know,
Win95 console handles really may use edge triggered semantics (or no signalling
at all), but I think Wine consoles ought to follow NT semantics.
--
Jukka Heinonen <http://www.iki.fi/jhei/>
More information about the wine-devel
mailing list