Cygwin hangs up if several keys are typed during outputting a lot of texts.
Takashi Yano
takashi.yano@nifty.ne.jp
Mon Mar 2 11:45:00 GMT 2015
On Sat, 28 Feb 2015 15:02:51 +0100
Corinna Vinschen <corinna-cygwin@cygwin.com> wrote:
> Hmm, I can reproduce this even with stty -echo. The tty code is not
Some shells seem to re-enable echo when it goes back into prompt.
Please put both 'stty' and 'yes' in one command line, separating
them with semi-colon.
> exactly my domain, so I'm not sure at the moment where to look. I guess
> the locking strategy in the tty code is not robust enough. Did you have
> a look into the cygwin sources in the meantime, by any chance?
To tell the truth, I have looked into the source code.
I guess the mechanism of blocking is as follows.
1) Buffer of named pipe gets full-filled by a lot of data written
by slave side.
2) WriteFile() in fhandler_pty_master::doecho(), which is called
from master side by key input, is blocked because the buffer
is full.
3) If a handling to read from the pipe is in the same thread as
key input, the thread falls into deadlock.
To check buffer space before WriteFile() is one idea,
but it is not smart, I suppose...
--
Takashi Yano <takashi.yano@nifty.ne.jp>
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list