You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

func main() {

  ctx := context.Background()

  // trap Ctrl+C and call cancel on the context
  ctx, cancel := context.WithCancel(ctx)
  c := make(chan os.Signal, 1)
  signal.Notify(c, os.Interrupt)

  defer func() {
    signal.Stop(c)
    cancel()
  }()

  go func() {
    select {
      case <-c:
      cancel()
      case <-ctx.Done():
    }
  }()

  doSomethingAwesome(ctx)

}



References

  • No labels