code: func (c *connection) nextIDLoop() {
  	var id int32 = 1
  	for {
  		select {
  		case <-c.stop:
  			close(c.nextID)
  			return
  		case c.nextID <- id:
  			id++
  			if id == math.MaxInt32 {
  				id = 1
  			}
  		}
  	}
  }
docs: // nextIDLoop generates correlation IDs, making sure they are always in order
  // and within the scope of request-response mapping array.