I did it for a good reason: If the context is canceled `srv.Shutdown` is called. Then, `<-errCh` is not called anymore. This code ensures that there is not leaking goroutine.
Le mercredi 5 avril 2017 07:13:19 UTC+2, Johnny Luo a écrit : > > func listenAndServe(ctx context.Context, srv *http.Server, errCh chan<- > error) { > err := srv.ListenAndServe() > select { > case errCh <- err: > case <-ctx.Done(): > } > } > ListenAndServe is blocking function, so the select will not happen until > ListenAndServe return. and errCh become no use > > > On Wednesday, April 5, 2017 at 4:02:16 AM UTC+10, Pierre Durand wrote: >> >> Hello >> >> I wrote a small helper to stop an HTTP Server when a Context is canceled. >> https://play.golang.org/p/Gl8APynVdh >> >> What do you think ? >> Is it OK to use context cancellation for stopping long running functions ? >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.