-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Closed
Milestone
Description
by patrick.allen.higgins:
http.Server only offers flavors of Serve() without a way to shut them down. Closing the listener should make the server stop, but there seems to be a race in TLS servers where this does not always work. Further, in-progress requests cannot complete before exiting without some kind of wrapper for net.Listener and net.Conn which includes synchronization between Listener.Accept() and Conn.Close(). See https://groups.google.com/d/topic/golang-nuts/i4_kPK-rVxI/discussion for some details. A use-case for this is zero-downtime restarts: a master process opens a listener and then spawns a slave, passing it the listener. When the master receives a SIGHUP, it spawns a new slave. When the slave starts servicing requests, it signals the master and the master signals the old slave to shutdown. The old slave must shutdown gracefully to prevent service interruption.
balexand, atomi, cespare, Thomasdezeeuw, applee and 47 moreyanpozka, renannprado, redstrike, sergejjevsejev-home24, shiyanhui and 2 moreshiyanhui, andreis and kakilangit
Metadata
Metadata
Assignees
Labels
No labels