Open
Description
I am trying to print some output from a channel to the shell. When receiving from a goroutine it prints without a newline and does not give the prompt back. Example:
package main
import (
"time"
"github.com/abiosoft/ishell"
)
func feed(c chan string) {
for i := 0; i<3; i++ {
c <- "Feedback"
time.Sleep(time.Second)
}
}
func main(){
shell := ishell.New()
c := make(chan string)
// listen
go func() {
for msg := range(c) {
shell.Println(msg)
}
}()
// this does output correctly
//feed(c)
// this does not
go feed(c)
shell.Start()
}
go feed(c)
outputs:
>>> Feedback
Feedback
Feedback
To get the prompt back you have to type a letter
feed(c)
outputs correctly:
Feedback
Feedback
Feedback
>>>