TickerをCTRL+Cで止める正しいやり方が知りたい
やりたいこと
- 無限ループの中でEnter押下で1を出力する。
- CTRL+C押下でプログラムを終了する
できないこと
- CTRL+Cを押下してもプログラムが終了しない
package main
import (
"bufio"
"fmt"
"os"
"os/signal"
"syscall"
"time"
)
func main() {
sig := make(chan os.Signal)
signal.Notify(sig, syscall.SIGINT)
r := bufio.NewReader(os.Stdin)
t := time.NewTicker(time.Duration(1) * time.Millisecond)
loop:
for {
select {
case <-sig:
fmt.Println("sigint")
break loop
case <-t.C:
r.ReadRune()
fmt.Println(1)
}
}
t.Stop()
}
こんな感じで書いてみたんですが、CTRL+Cでプログラム終了が出来ません。
Tickerの使い方もこれでいいのか・・・アドバイスお願いします。