async fn put_back(&self, birth: Instant, mut conn: M::Connection) {
        let inner = self.inner.clone();

        // Supposed to be fast, but do it before locking anyways.
        let broken = inner.manager.has_broken(&mut conn);

        let mut locked = inner.internals.lock().await;
        if broken {
            drop_connections(&inner, locked, 1);
        } else {
            let conn = IdleConn::make_idle(Conn { conn, birth });
            locked.put_idle_conn(conn);
        }
    }
/// Return connection back in to the pool
Return connection back in to the pool
Return connection back in to the pool
async fn put_back(&self, birth: Instant, mut conn: M::Connection) {
        let inner = self.inner.clone();
        // Supposed to be fast, but do it before locking anyways.
        let broken = inner.manager.has_broken(&mut conn);
        let mut locked = inner.internals.lock().await;
        if broken {
            drop_connections(&inner, locked, 1);
        } else {
            let conn = IdleConn::make_idle(Conn { conn, birth });
            locked.put_idle_conn(conn);
        }
    }
async fn put_back ( & self , birth : Instant , mut conn : M :: Connection ) { let inner = self . inner . clone ( ) ; // Supposed to be fast, but do it before locking anyways. let broken = inner . manager . has_broken ( & mut conn ) ; let mut locked = inner . internals . lock ( ) . await ; if broken { drop_connections ( & inner , locked , 1 ) ; } else { let conn = IdleConn :: make_idle ( Conn { conn , birth } ) ; locked . put_idle_conn ( conn ) ; } }
Return connection back in to the pool
Return connection back in to the pool
&self
birth
Instant
conn
M::Connection
&self
birth
Instant
conn
M::Connection