Console issues in recent git

Eric Pouech eric.pouech at orange.fr
Mon Sep 6 15:00:19 CDT 2010


Hi,

after the console patch series, it appears a couple of problems are left 
over:

to summarize, the problems with their status:

A/ when a program is running, no echo is seen for characters being typed.

B/ after running a wine program, the console is a bad shape and needs 
'reset' to get back in a sane state.

Status
A/ IMO, it's barely a bug as you can't make an hypothesis about what a 
program will do with character input. However, it's a change from 
previous behavior as one could see the echo. This only happens when the 
running program doesn't read its input. However, since now wine runs in 
raw console mode, it's likely the typed characters will not be useful to 
the shell when the program exits (as the shell will run in cooked mode 
and will start with an empty buffer). Low priority for a fix (if any)

B/ actually, it's likely a race (in the simple way of running one single 
program) about resetting the console in decent shape. Could the folks 
having the issue try the attached patch (file conclean) to see if it 
helps ? (I never could reproduce it here, tested with konsole & xterm. 
If you still see the issue, please detail console and shell program)
Clearly an annoying impact for most users, need fixing.

Actually, there's another issue with the same symptoms:
1- program A is launched from shell
2- program A starts another program B (for example winedbg when a fault 
occurs)
3- at this point, both A & B can read/write to the console
4- program A exits. As it way the group leader, B is set into the 
background and loses (read) access to the console.
5- When B exits, as it no longer has access to the console, the state of 
the console cannot be reset to normal

this was happening before the patch series, but as we didn't tweak the 
console, it was just fine (except that some program dies when in the 
background, eg winedbg)
fix will not be 100% easy

among the potential fixes:
S1: no longer do the console attribute management in server, but only in 
kernel32, and only for the livespan of the process creating the bare 
console. this means that the console will not be accessible to the 
children of this process after its death (but I don't see how to do it 
anyway)
S2: when the process that created the bare console, it's about to 
terminate it should wait for all its children to die. This would require 
a cloak of invisibility (from the win32 space) to let the other 
win32-process see that it actually died.
S3: combine S1 and S2
comments welcome

also, I may have forgotten (or misunderstood) some issue reports. Don't 
hesitate to jump in.

NB: I also have a patchset ready that shall enable key/arrows support in 
bare console mode (with history bells & whistles... handy for any 
program with a CLI)

A+



-- 
Eric Pouech
"The problem with designing something completely foolproof is to underestimate the ingenuity of a complete idiot." (Douglas Adams)

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: conclean
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20100906/502410c8/attachment.asc>


More information about the wine-devel mailing list