From 22532b4805c06717cb598e4d232683e0ae38119f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 18 Jan 2023 16:07:42 +0530 Subject: [PATCH] kitten @: Fix occasional hang until key is pressed while waiting for response from terminal Fixes #5890 --- tools/tui/loop/read.go | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/tools/tui/loop/read.go b/tools/tui/loop/read.go index 379c46bd9..a58046d4a 100644 --- a/tools/tui/loop/read.go +++ b/tools/tui/loop/read.go @@ -54,11 +54,16 @@ func read_from_tty(pipe_r *os.File, term *tty.Term, results_channel chan<- []byt const bufsize = 2 * utils.DEFAULT_IO_BUFFER_SIZE wait_for_read_available := func() { - _, err := selector.WaitForever() - if err != nil { - err_channel <- err - keep_going = false - return + for { + n, err := selector.WaitForever() + if err != nil { + err_channel <- err + keep_going = false + return + } + if n > 0 { + break + } } if selector.IsReadyToRead(pipe_fd) { keep_going = false