やりたいこと

  • 無限ループの中で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の使い方もこれでいいのか・・・アドバイスお願いします。