From de9bf13eca6dec29b422903849d6f12b14cf03ae Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Sun, 25 Apr 2021 10:38:34 -0700 Subject: [PATCH] Open /dev/tty in non-blocking mode Resolves #452. --- tscreen.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 {