|  | @@ -1,13 +1,15 @@
 | 
	
		
			
				|  |  |  package buf
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type MergingReader struct {
 | 
	
		
			
				|  |  | -	reader   Reader
 | 
	
		
			
				|  |  | -	leftover *Buffer
 | 
	
		
			
				|  |  | +	reader        Reader
 | 
	
		
			
				|  |  | +	timeoutReader TimeoutReader
 | 
	
		
			
				|  |  | +	leftover      *Buffer
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  func NewMergingReader(reader Reader) Reader {
 | 
	
		
			
				|  |  |  	return &MergingReader{
 | 
	
		
			
				|  |  | -		reader: reader,
 | 
	
		
			
				|  |  | +		reader:        reader,
 | 
	
		
			
				|  |  | +		timeoutReader: reader.(TimeoutReader),
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -25,7 +27,11 @@ func (r *MergingReader) Read() (*Buffer, error) {
 | 
	
		
			
				|  |  |  		return b, nil
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	b2, err := r.reader.Read()
 | 
	
		
			
				|  |  | +	if r.timeoutReader == nil {
 | 
	
		
			
				|  |  | +		return b, nil
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	b2, err := r.timeoutReader.ReadTimeout(0)
 | 
	
		
			
				|  |  |  	if err != nil {
 | 
	
		
			
				|  |  |  		return b, nil
 | 
	
		
			
				|  |  |  	}
 |