code: func newFreeClientPool(db ethdb.Database, freeClientCap uint64, totalLimit int, clock mclock.Clock, removePeer func(string)) *freeClientPool {
  	pool := &freeClientPool{
  		db:            db,
  		clock:         clock,
  		addressMap:    make(map[string]*freeClientPoolEntry),
  		connPool:      prque.New(poolSetIndex),
  		disconnPool:   prque.New(poolSetIndex),
  		freeClientCap: freeClientCap,
  		totalLimit:    totalLimit,
  		removePeer:    removePeer,
  	}
  	pool.loadFromDb()
  	return pool
  }
docs: // newFreeClientPool creates a new free client pool