func (cc *ConnectionCache) Put(k string, conn *transport.Conn) { cc.Lock() ch, ok := cc.connections[k] if !ok { ch = make(chan *transport.Conn, 1) cc.connections[k] = ch } cc.Unlock() select { case ch <- conn: default: conn.Close() } return }