| 
					
				 | 
			
			
				@@ -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 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 |