code: func (p *ConnPool) releaseConn(conn *Conn) {
  	refCount := atomic.AddInt32(&conn.refCount, -1)
  	if refCount == 0 && atomic.LoadInt32(&conn.shouldClose) == 1 {
  		conn.Close()
  	}
  }
docs: // releaseConn is invoked when we are done with a conn to reduce the ref count