(addr string, pool *sharedBackendConnPool)
| 381 | } |
| 382 | |
| 383 | func newSharedBackendConn(addr string, pool *sharedBackendConnPool) *sharedBackendConn { |
| 384 | host, port, err := net.SplitHostPort(addr) |
| 385 | if err != nil { |
| 386 | log.ErrorErrorf(err, "split host-port failed, address = %s", addr) |
| 387 | } |
| 388 | s := &sharedBackendConn{ |
| 389 | addr: addr, |
| 390 | host: []byte(host), port: []byte(port), |
| 391 | } |
| 392 | s.owner = pool |
| 393 | s.conns = make([][]*BackendConn, pool.config.BackendNumberDatabases) |
| 394 | for database := range s.conns { |
| 395 | parallel := make([]*BackendConn, pool.parallel) |
| 396 | for i := range parallel { |
| 397 | parallel[i] = NewBackendConn(addr, database, pool.config) |
| 398 | } |
| 399 | s.conns[database] = parallel |
| 400 | } |
| 401 | if pool.parallel == 1 { |
| 402 | s.single = make([]*BackendConn, len(s.conns)) |
| 403 | for database := range s.conns { |
| 404 | s.single[database] = s.conns[database][0] |
| 405 | } |
| 406 | } |
| 407 | s.refcnt = 1 |
| 408 | return s |
| 409 | } |
| 410 | |
| 411 | func (s *sharedBackendConn) Addr() string { |
| 412 | if s == nil { |
no test coverage detected