|  | @@ -198,8 +198,6 @@ type Connection struct {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	dataUpdater *Updater
 | 
	
		
			
				|  |  |  	pingUpdater *Updater
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	mergingWriter buf.Writer
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // NewConnection create a new KCP connection between local and remote.
 | 
	
	
		
			
				|  | @@ -285,7 +283,7 @@ func (v *Connection) ReadMultiBuffer() (buf.MultiBuffer, error) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		duration := time.Minute
 | 
	
		
			
				|  |  |  		if !v.rd.IsZero() {
 | 
	
		
			
				|  |  | -			duration = v.rd.Sub(time.Now())
 | 
	
		
			
				|  |  | +			duration = time.Until(v.rd)
 | 
	
		
			
				|  |  |  			if duration < 0 {
 | 
	
		
			
				|  |  |  				return nil, ErrIOTimeout
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -322,7 +320,7 @@ func (v *Connection) Read(b []byte) (int, error) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		duration := time.Minute
 | 
	
		
			
				|  |  |  		if !v.rd.IsZero() {
 | 
	
		
			
				|  |  | -			duration = v.rd.Sub(time.Now())
 | 
	
		
			
				|  |  | +			duration = time.Until(v.rd)
 | 
	
		
			
				|  |  |  			if duration < 0 {
 | 
	
		
			
				|  |  |  				return 0, ErrIOTimeout
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -358,7 +356,7 @@ func (v *Connection) Write(b []byte) (int, error) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		duration := time.Minute
 | 
	
		
			
				|  |  |  		if !v.wd.IsZero() {
 | 
	
		
			
				|  |  | -			duration = v.wd.Sub(time.Now())
 | 
	
		
			
				|  |  | +			duration = time.Until(v.wd)
 | 
	
		
			
				|  |  |  			if duration < 0 {
 | 
	
		
			
				|  |  |  				return totalWritten, ErrIOTimeout
 | 
	
		
			
				|  |  |  			}
 |