|
|
|
@ -66,16 +66,16 @@ func main() {
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
server := &http.Server{Addr: listenAddr}
|
|
|
|
|
go func() {
|
|
|
|
|
if err := http.ListenAndServe(listenAddr, nil); err != nil &&
|
|
|
|
|
err != http.ErrServerClosed {
|
|
|
|
|
log.Fatalln(err)
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
errs := make(chan error, 1)
|
|
|
|
|
go func() { errs <- server.ListenAndServe() }()
|
|
|
|
|
|
|
|
|
|
sig := make(chan os.Signal)
|
|
|
|
|
signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
|
|
|
|
|
<-sig
|
|
|
|
|
select {
|
|
|
|
|
case <-sig:
|
|
|
|
|
case err := <-errs:
|
|
|
|
|
log.Println(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// For simplicity, we'll wait for everything to finish, including snapshots.
|
|
|
|
|
if err := server.Shutdown(context.Background()); err != nil {
|
|
|
|
|