エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
【Go言語】Ctrl+cなどによるSIGINTの捕捉とdeferの実行 - DRYな備忘録
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
【Go言語】Ctrl+cなどによるSIGINTの捕捉とdeferの実行 - DRYな備忘録
問題 deferを使って後処理をしたい場合に、プロセスがCtrl+cなどSIGINTで中断されるとdeferしたものが発... 問題 deferを使って後処理をしたい場合に、プロセスがCtrl+cなどSIGINTで中断されるとdeferしたものが発火しない。プロセス自体が中断されるのであたりまえなんだけども。 問題の再現 package main import ( "fmt" "time" ) func main() { defer teardown() hoge() fmt.Println("終了") } func hoge() { for i := 0; i < 5; i++ { fmt.Println(i) time.Sleep(1 * time.Second) } } func teardown() { fmt.Println("データのあとかたづけ") } 上記の実行 % go run main.go 0 1 2 3 4 終了 データのあとかたづけ % SIGINTの場合 % go run main.go