Skip to content

Commit 139c46f

Browse files
committed
take account of large writes in both steps
Signed-off-by: Andrew Thornton <[email protected]>
1 parent da16cab commit 139c46f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

modules/graceful/server.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,15 @@ type wrappedConn struct {
259259

260260
func (w wrappedConn) Write(p []byte) (n int, err error) {
261261
if PerWriteWriteTimeout > 0 {
262-
minDeadline := time.Now().Add(PerWriteWriteTimeout)
263-
w.deadline = w.deadline.Add(PerWriteWriteTimeout/2 + time.Duration(len(p)/1024)*PerWriteWriteTimeoutKbRate)
262+
minTimeout := PerWriteWriteTimeout/2 + time.Duration(len(p)/1024)*PerWriteWriteTimeoutKbRate
263+
minDeadline := time.Now().Add(minTimeout)
264+
265+
if minTimeout < PerWriteWriteTimeout {
266+
minDeadline := time.Now().Add(PerWriteWriteTimeout)
267+
}
268+
269+
minDeadline := time.Now().Add(minTimeout)
270+
w.deadline = w.deadline.Add(minTimeout)
264271
if minDeadline.After(w.deadline) {
265272
w.deadline = minDeadline
266273
}

0 commit comments

Comments
 (0)