From c342f4f6f5f820fca228b9d92173c4e92ac53ee0 Mon Sep 17 00:00:00 2001 From: TorchedSammy <38820196+TorchedSammy@users.noreply.github.com> Date: Fri, 8 Apr 2022 10:46:25 -0400 Subject: [PATCH] fix: handle when stdin is in nonblocking mode (closes #136) --- readline/readline.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/readline/readline.go b/readline/readline.go index ddb0104..7972086 100644 --- a/readline/readline.go +++ b/readline/readline.go @@ -5,6 +5,7 @@ import ( "fmt" "os" "regexp" + "syscall" ) var rxMultiline = regexp.MustCompile(`[\r\n]+`) @@ -77,6 +78,14 @@ func (rl *Instance) Readline() (string, error) { var err error i, err = os.Stdin.Read(b) if err != nil { + // i shouldnt really check the error like this but i dont know what + // the actual thing is so + if err.Error() == "read /dev/stdin: resource temporarily unavailable" { + err = syscall.SetNonblock(syscall.Stdin, false) + if err == nil { + continue + } + } return "", err } }