Просмотр исходного кода

return correct number of bytes written

Darien Raymond 9 лет назад
Родитель
Сommit
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() {