// Open must be call before starting to use the pool. func (cp *ConnectionPool) Open(connFactory CreateConnectionFunc) { cp.mu.Lock() defer cp.mu.Unlock() f := func() (pools.Resource, error) { return connFactory(cp) } cp.connections = pools.NewResourcePool(f, cp.capacity, cp.capacity, cp.idleTimeout) }
func (cp *CachePool) Open() { cp.mu.Lock() defer cp.mu.Unlock() if cp.pool != nil { panic(NewTabletError(FATAL, "rowcache is already open")) } if cp.rowCacheConfig.Binary == "" { panic(NewTabletError(FATAL, "rowcache binary not specified")) } cp.startMemcache() log.Infof("rowcache is enabled") f := func() (pools.Resource, error) { return memcache.Connect(cp.port, 10*time.Second) } cp.pool = pools.NewResourcePool(f, cp.capacity, cp.capacity, cp.idleTimeout) if cp.memcacheStats != nil { cp.memcacheStats.Open() } }