|  | @@ -18,6 +18,7 @@ type UDPHub struct {
 | 
	
		
			
				|  |  |  	conn      *net.UDPConn
 | 
	
		
			
				|  |  |  	option    ListenOption
 | 
	
		
			
				|  |  |  	accepting bool
 | 
	
		
			
				|  |  | +	pool      *alloc.BufferPool
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  type ListenOption struct {
 | 
	
	
		
			
				|  | @@ -48,6 +49,7 @@ func ListenUDP(address v2net.Address, port v2net.Port, option ListenOption) (*UD
 | 
	
		
			
				|  |  |  	hub := &UDPHub{
 | 
	
		
			
				|  |  |  		conn:   udpConn,
 | 
	
		
			
				|  |  |  		option: option,
 | 
	
		
			
				|  |  | +		pool:   alloc.NewBufferPool(2048, 64),
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	go hub.start()
 | 
	
		
			
				|  |  |  	return hub, nil
 | 
	
	
		
			
				|  | @@ -75,7 +77,7 @@ func (this *UDPHub) start() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	oobBytes := make([]byte, 256)
 | 
	
		
			
				|  |  |  	for this.Running() {
 | 
	
		
			
				|  |  | -		buffer := alloc.NewBuffer()
 | 
	
		
			
				|  |  | +		buffer := this.pool.Allocate()
 | 
	
		
			
				|  |  |  		nBytes, noob, _, addr, err := ReadUDPMsg(this.conn, buffer.Value, oobBytes)
 | 
	
		
			
				|  |  |  		if err != nil {
 | 
	
		
			
				|  |  |  			log.Info("UDP|Hub: Failed to read UDP msg: ", err)
 |