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