INNER CODE UNIT · Rust

cancel_permissions

xuzhougeng/wisp-science · crates/wisp-acp/src/lib.rs:768

fn cancel_permissions(pending: &PendingPermissions, session_id: &SessionId) {
    let mut pending = pending.lock().expect("pending permissions poisoned");
    let request_ids = pending
        .iter()
        .filter(|(_, permission)| &permission.session_id == session_id)
        .map(|(id, _)| id.clone())
        .collect::<Vec<_>>();
    for request_id in request_ids {
        if let Some(permission) = pending.remove(&request_id) {
            let _ = permission.reply.send(None);
        }
    }
}

fn cancel_all_permissions(pending: &PendingPermissions) {
    for (_, permission) in pending
        .lock()
        .expect("pending permissions poisoned")

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…