INNER CODE UNIT · Rust

spawn_reaper

EricLBuehler/mistral.rs · mistralrs-code-exec/src/lib.rs:279

fn spawn_reaper(sessions: Arc<Mutex<HashMap<String, Arc<Mutex<PythonSession>>>>>) {
    tokio::spawn(async move {
        loop {
            tokio::time::sleep(REAP_INTERVAL).await;
            let mut map = sessions.lock().await;
            let before = map.len();
            let mut to_remove = Vec::new();
            for (id, session_arc) in map.iter() {
                if let Ok(session) = session_arc.try_lock() {
                    if session.seconds_since_last_active() >= SESSION_TTL.as_secs() {
                        to_remove.push(id.clone());
                    }
                }
            }
            for id in &to_remove {
                map.remove(id);
            }
            let reaped = before - map.len();

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…