This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin hangs up if several keys are typed during outputting a lot of texts.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]