From aa6d766e42480d0e859c376f7166b7799c3ccd48 Mon Sep 17 00:00:00 2001 From: Christian Rocha Date: Wed, 22 Apr 2020 10:32:18 -0400 Subject: [PATCH] Catch errors when reading keyboard input --- tea.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tea.go b/tea.go index 191dad9..8403d90 100644 --- a/tea.go +++ b/tea.go @@ -149,6 +149,7 @@ func (p *Program) Start() error { subs = make(subManager) cmds = make(chan Cmd) msgs = make(chan Msg) + errs = make(chan error) done = make(chan struct{}) linesRendered int ) @@ -175,7 +176,10 @@ func (p *Program) Start() error { // need that we're enabling it by default. go func() { for { - msg, _ := ReadKey(os.Stdin) + msg, err := ReadKey(os.Stdin) + if err != nil { + errs <- err + } msgs <- KeyMsg(msg) } }() @@ -202,6 +206,9 @@ func (p *Program) Start() error { // Handle updates and draw for { select { + case err := <-errs: + close(done) + return err case msg := <-msgs: // Handle quit message