filer: linearize timeout for large chunk of data

This commit is contained in:
Chris Lu 2020-10-13 14:04:46 -07:00
parent aac4cb1f0c
commit c127da1219

View file

@ -54,7 +54,8 @@ func (c *Conn) Read(b []byte) (count int, e error) {
func (c *Conn) Write(b []byte) (count int, e error) { func (c *Conn) Write(b []byte) (count int, e error) {
if c.WriteTimeout != 0 { if c.WriteTimeout != 0 {
err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout)) // minimum 4KB/s
err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout * time.Duration(len(b)/40000+1)))
if err != nil { if err != nil {
return 0, err return 0, err
} }