|  | @@ -3,12 +3,16 @@ package io
 | 
	
		
			
				|  |  |  func Pipe(reader Reader, writer Writer) error {
 | 
	
		
			
				|  |  |  	for {
 | 
	
		
			
				|  |  |  		buffer, err := reader.Read()
 | 
	
		
			
				|  |  | -		if buffer.Len() > 0 {
 | 
	
		
			
				|  |  | -			err = writer.Write(buffer)
 | 
	
		
			
				|  |  | -		} else {
 | 
	
		
			
				|  |  | +		if err != nil {
 | 
	
		
			
				|  |  | +			return nil
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if buffer.IsEmpty() {
 | 
	
		
			
				|  |  |  			buffer.Release()
 | 
	
		
			
				|  |  | +			continue
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		err = writer.Write(buffer)
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
		
			
				|  |  |  			return nil
 | 
	
		
			
				|  |  |  		}
 |