diff --git a/tscreen.go b/tscreen.go index ebd61a25..1aafcd4d 100644 --- a/tscreen.go +++ b/tscreen.go @@ -1534,14 +1534,23 @@ func (t *tScreen) mainLoop(stopQ chan struct{}) { } func (t *tScreen) inputLoop(stopQ chan struct{}) { - defer t.wg.Done() + var ( + n int + err error + ) for { select { case <-stopQ: return default: } + + err = t.in.SetReadDeadline(time.Now().Add(250 * time.Millisecond)) + if err != nil { + panic(err) + } + chunk := make([]byte, 128) n, e := t.tty.Read(chunk) switch e {