|  | @@ -45,14 +45,12 @@ func (this *ChanReader) Read(b []byte) (int, error) {
 | 
											
												
													
														|  |  			return 0, io.EOF
 |  |  			return 0, io.EOF
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  | -	nBytes := copy(b, this.current.Value)
 |  | 
 | 
											
												
													
														|  | -	if nBytes == this.current.Len() {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	nBytes, err := this.current.Read(b)
 | 
											
												
													
														|  | 
 |  | +	if this.current.IsEmpty() {
 | 
											
												
													
														|  |  		this.current.Release()
 |  |  		this.current.Release()
 | 
											
												
													
														|  |  		this.current = nil
 |  |  		this.current = nil
 | 
											
												
													
														|  | -	} else {
 |  | 
 | 
											
												
													
														|  | -		this.current.SliceFrom(nBytes)
 |  | 
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  | -	return nBytes, nil
 |  | 
 | 
											
												
													
														|  | 
 |  | +	return nBytes, err
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  func (this *ChanReader) Release() {
 |  |  func (this *ChanReader) Release() {
 |