瀏覽代碼

return correct number of bytes written

Darien Raymond 9 年之前
父節點
當前提交
1169476e69
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      common/io/chain_writer.go

+ 5 - 2
common/io/chain_writer.go

@@ -25,6 +25,7 @@ func (this *ChainWriter) Write(payload []byte) (int, error) {
 		return 0, io.ErrClosedPipe
 	}
 
+	bytesWritten := 0
 	size := len(payload)
 	for size > 0 {
 		buffer := alloc.NewBuffer().Clear()
@@ -32,17 +33,19 @@ func (this *ChainWriter) Write(payload []byte) (int, error) {
 			buffer.Append(payload[:alloc.BufferSize])
 			size -= alloc.BufferSize
 			payload = payload[alloc.BufferSize:]
+			bytesWritten += alloc.BufferSize
 		} else {
 			buffer.Append(payload)
+			bytesWritten += size
 			size = 0
 		}
 		err := this.writer.Write(buffer)
 		if err != nil {
-			return 0, err
+			return bytesWritten, err
 		}
 	}
 
-	return size, nil
+	return bytesWritten, nil
 }
 
 func (this *ChainWriter) Release() {