|  | @@ -206,6 +206,9 @@ func (this *SendingQueue) Pop() *alloc.Buffer {
 | 
	
		
			
				|  |  |  	if this.start == this.cap {
 | 
	
		
			
				|  |  |  		this.start = 0
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	if this.IsEmpty() {
 | 
	
		
			
				|  |  | +		this.start = 0
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  	return seg
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -301,6 +304,18 @@ func (this *SendingWorker) ProcessSegment(current uint32, seg *AckSegment) {
 | 
	
		
			
				|  |  |  		this.remoteNextNumber = seg.ReceivingWindow
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	this.ProcessReceivingNextWithoutLock(seg.ReceivingNext)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	for !this.queue.IsEmpty() && !this.window.IsFull() {
 | 
	
		
			
				|  |  | +		seg := NewDataSegment()
 | 
	
		
			
				|  |  | +		seg.Data = this.queue.Pop()
 | 
	
		
			
				|  |  | +		seg.Number = this.nextNumber
 | 
	
		
			
				|  |  | +		seg.timeout = current
 | 
	
		
			
				|  |  | +		seg.ackSkipped = 0
 | 
	
		
			
				|  |  | +		seg.transmit = 0
 | 
	
		
			
				|  |  | +		this.window.Push(seg)
 | 
	
		
			
				|  |  | +		this.nextNumber++
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	var maxack uint32
 | 
	
		
			
				|  |  |  	for i := 0; i < int(seg.Count); i++ {
 | 
	
		
			
				|  |  |  		timestamp := seg.TimestampList[i]
 |