mirror of
https://github.com/golang/go
synced 2024-11-23 16:30:06 -07:00
net/http: document that Server.Close and Shutdown don't track hijacked conns
Fixes #17721 Change-Id: I19fd81c9909a22b01a4dc9c75f3f0e069c8608ca Reviewed-on: https://go-review.googlesource.com/33095 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
c9ed065fbb
commit
1c54119315
@ -2359,8 +2359,15 @@ func (s *Server) closeDoneChanLocked() {
|
||||
}
|
||||
}
|
||||
|
||||
// Close immediately closes all active net.Listeners and connections,
|
||||
// regardless of their state. For a graceful shutdown, use Shutdown.
|
||||
// Close immediately closes all active net.Listeners and any
|
||||
// connections in state StateNew, StateActive, or StateIdle. For a
|
||||
// graceful shutdown, use Shutdown.
|
||||
//
|
||||
// Close does not attempt to close (and does not even know about)
|
||||
// any hijacked connections, such as WebSockets.
|
||||
//
|
||||
// Close returns any error returned from closing the Server's
|
||||
// underlying Listener(s).
|
||||
func (s *Server) Close() error {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
@ -2388,6 +2395,11 @@ var shutdownPollInterval = 500 * time.Millisecond
|
||||
// indefinitely for connections to return to idle and then shut down.
|
||||
// If the provided context expires before the shutdown is complete,
|
||||
// then the context's error is returned.
|
||||
//
|
||||
// Shutdown does not attempt to close nor wait for hijacked
|
||||
// connections such as WebSockets. The caller of Shutdown should
|
||||
// separately notify such long-lived connections of shutdown and wait
|
||||
// for them to close, if desired.
|
||||
func (s *Server) Shutdown(ctx context.Context) error {
|
||||
atomic.AddInt32(&s.inShutdown, 1)
|
||||
defer atomic.AddInt32(&s.inShutdown, -1)
|
||||
|
Loading…
Reference in New Issue
Block a user