diff options
Diffstat (limited to 'internal/net/server.go')
| -rw-r--r-- | internal/net/server.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/internal/net/server.go b/internal/net/server.go index 71e34c8..8e23a1f 100644 --- a/internal/net/server.go +++ b/internal/net/server.go @@ -808,6 +808,11 @@ func (s *Server) Shutdown() { if remaining <= 0 { break } + // Cap each wait so one stalled writer cannot consume the whole + // budget and starve every later session's flush. + if remaining > 200*time.Millisecond { + remaining = 200 * time.Millisecond + } select { case <-sess.writeDone: case <-time.After(remaining): |
