kubernetes/vendor/golang.org/x/net/http2/client_conn_pool.go

type ClientConnPool

type clientConnPoolIdleCloser

var _

var _

type clientConnPool

func (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {}

const dialOnMiss

const noDialOnMiss

func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) {}

type dialCall

// requires p.mu is held.
func (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall {}

// run in its own goroutine.
func (c *dialCall) dial(ctx context.Context, addr string) {}

// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't
// already exist. It coalesces concurrent calls with the same key.
// This is used by the http1 Transport code when it creates a new connection. Because
// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know
// the protocol), it can get into a situation where it has multiple TLS connections.
// This code decides which ones live or die.
// The return value used is whether c was used.
// c is never closed.
func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn) (used bool, err error) {}

type addConnCall

func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) {}

// p.mu must be held
func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) {}

func (p *clientConnPool) MarkDead(cc *ClientConn) {}

func (p *clientConnPool) closeIdleConnections() {}

func filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn {}

type noDialClientConnPool

func (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) {}

// shouldRetryDial reports whether the current request should
// retry dialing after the call finished unsuccessfully, for example
// if the dial was canceled because of a context cancellation or
// deadline expiry.
func shouldRetryDial(call *dialCall, req *http.Request) bool {}