When creating a standard HTTP server in Go, it is common to use ListenAndServe to start listening to incoming connections and launch request handlers. ListenAndServe blocks until there is an error. What if you want to unblock the server and stop it from running? With Manners, you can do it.
Manners then will wait until all requests are finished serving, and shut down the server.
Manners requires Go 1.3, since it's the first Golang version to introduce ConnState hooks.
You mention that the shutdown process will wait until all active requests have completed. What about new requests that are invoked after the shutdown operation begins? Will those requests be rejected?
Paul, as far as I understand, it will stop accepting new requests and release this port, so that you can immediately bind it to a new process (At least that's what https://github.com/tylerb/graceful — my new preferred graceful shutdown handler — does).