async fn do_negotiation_needed(params: NegotiationNeededParams) {
        if !RTCPeerConnection::do_negotiation_needed_inner(&params) {
            return;
        }

        let params2 = params.clone();
        let _ = params
            .ops
            .enqueue(Operation(Box::new(move || {
                let params3 = params2.clone();
                Box::pin(async move { RTCPeerConnection::negotiation_needed_op(params3).await })
            })))
            .await;
    }
/// do_negotiation_needed enqueues negotiation_needed_op if necessary
/// caller of this method should hold `pc.mu` lock
do_negotiation_needed enqueues negotiation_needed_op if necessary
caller of this method should hold `pc.mu` lock
do_negotiation_needed enqueues negotiation_needed_op if necessary caller of this method should hold ` pc . mu ` lock
async fn do_negotiation_needed(params: NegotiationNeededParams) {
        if !RTCPeerConnection::do_negotiation_needed_inner(&params) {
            return;
        }
        let params2 = params.clone();
        let _ = params
            .ops
            .enqueue(Operation(Box::new(move || {
                let params3 = params2.clone();
                Box::pin(async move { RTCPeerConnection::negotiation_needed_op(params3).await })
            })))
            .await;
    }
async fn do_negotiation_needed ( params : NegotiationNeededParams ) { if ! RTCPeerConnection :: do_negotiation_needed_inner ( & params ) { return ; } let params2 = params . clone ( ) ; let _ = params . ops . enqueue ( Operation ( Box :: new ( move | | { let params3 = params2 . clone ( ) ; Box :: pin ( async move { RTCPeerConnection :: negotiation_needed_op ( params3 ) . await } ) } ) ) ) . await ; }
do_negotiation_needed enqueues negotiation_needed_op if necessary
caller of this method should hold `pc.mu` lock
do_negotiation_needed enqueues negotiation_needed_op if necessary caller of this method should hold ` pc . mu ` lock
params
NegotiationNeededParams