Hi,

Go code after calling srv.Shutdown() simply isn't called. There is no error 
message, no dump, nothing. This is the output after visiting 
http://localhost:8080/stop on my browser

2017/07/09 13:58:40 Server starting up...
2017/07/09 13:58:44 Server shutting down...
test - before shutdown

Notice that "test - after shutdown" doesn't show up. What am I doing wrong?

func main() {
    srv := &http.Server{Addr: ":8080", Handler: http.DefaultServeMux}

    http.Handle("/web/", http.FileServer(http.Dir("./")))
    http.HandleFunc("/stop", func(w http.ResponseWriter, r *http.Request) {
        log.Println("Server shutting down...")
        fmt.Println("test - before shutdown")
        err := srv.Shutdown(context.Background())
        fmt.Println("test - after shutdown")
        log.Println("Error: %v", err)
    })
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        log.Println("Got request")
        time.Sleep(6000 * time.Millisecond)
        fmt.Fprintf(w, "Hello @ %s", time.Now())
        log.Println("Finished request")
    })

    log.Println("Server starting up...")
    if err := srv.ListenAndServe(); err != http.ErrServerClosed {
        log.Fatalf("Server startup failed! Error: %v", err)
    }
}


-- 
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.

Reply via email to