async fn active_wait_2msl<RT: Runtime>(cb: Rc<ControlBlock<RT>>) -> Result<!, Fail> {
    loop {
        let (st, st_changed) = cb.get_state();

        if st != State::TimeWait2 {
            st_changed.await;
            continue;
        }

        // TODO: Wait for 2*MSL if active close.
        return Err(Fail::ConnectionAborted {});
    }
}
/// Awaits until connection terminates by our four-way handshake.
Awaits until connection terminates by our four-way handshake.
Awaits until connection terminates by our four - way handshake .
async fn active_wait_2msl<RT: Runtime>(cb: Rc<ControlBlock<RT>>) -> Result<!, Fail> {
    loop {
        let (st, st_changed) = cb.get_state();
        if st != State::TimeWait2 {
            st_changed.await;
            continue;
        }
        // TODO: Wait for 2*MSL if active close.
        return Err(Fail::ConnectionAborted {});
    }
}
async fn active_wait_2msl < RT : Runtime > ( cb : Rc < ControlBlock < RT > > ) -> Result < ! , Fail > { loop { let ( st , st_changed ) = cb . get_state ( ) ; if st != State :: TimeWait2 { st_changed . await ; continue ; } // TODO: Wait for 2*MSL if active close. return Err ( Fail :: ConnectionAborted { } ) ; } }
Awaits until connection terminates by our four-way handshake.
Awaits until connection terminates by our four - way handshake .
cb
Rc<ControlBlock<RT>>
cb
Rc<ControlBlock<RT>>