go-prompt/prompt_posix.go
Yasuhiro Matsumoto df1341fe00 windows support
2018-02-12 19:20:57 +09:00

30 lines
498 B
Go

// +build !windows
package prompt
import (
"log"
"syscall"
"time"
)
func (p *Prompt) readBuffer(bufCh chan []byte, stopCh chan struct{}) {
buf := make([]byte, maxReadBytes)
log.Printf("[INFO] readBuffer start")
for {
time.Sleep(10 * time.Millisecond)
select {
case <-stopCh:
log.Print("[INFO] stop readBuffer")
return
default:
if n, err := syscall.Read(syscall.Stdin, buf); err == nil {
cbuf := make([]byte, n)
copy(cbuf, buf[:n])
bufCh <- cbuf
}
}
}
}