use a hashset instead of vec for dead ids

This commit is contained in:
Scott Richmond 2025-06-29 18:14:06 -04:00
parent f6cbe3f800
commit 5478e5e40e

View File

@ -3,7 +3,7 @@ use crate::value::Value;
use crate::vm::{Creature, Panic}; use crate::vm::{Creature, Panic};
use ran::ran_u8; use ran::ran_u8;
use std::cell::RefCell; use std::cell::RefCell;
use std::collections::HashMap; use std::collections::{HashMap, HashSet};
use std::mem::swap; use std::mem::swap;
use std::rc::Rc; use std::rc::Rc;
use std::time::{Duration, Instant}; use std::time::{Duration, Instant};
@ -67,7 +67,7 @@ pub struct Zoo {
procs: Vec<Status>, procs: Vec<Status>,
empty: Vec<usize>, empty: Vec<usize>,
ids: HashMap<&'static str, usize>, ids: HashMap<&'static str, usize>,
dead: Vec<&'static str>, dead: HashSet<&'static str>,
kill_list: Vec<&'static str>, kill_list: Vec<&'static str>,
sleeping: HashMap<&'static str, (Instant, Duration)>, sleeping: HashMap<&'static str, (Instant, Duration)>,
active_idx: usize, active_idx: usize,
@ -81,7 +81,7 @@ impl Zoo {
empty: vec![], empty: vec![],
ids: HashMap::new(), ids: HashMap::new(),
kill_list: vec![], kill_list: vec![],
dead: vec![], dead: HashSet::new(),
sleeping: HashMap::new(), sleeping: HashMap::new(),
active_idx: 0, active_idx: 0,
active_id: "", active_id: "",
@ -155,7 +155,7 @@ impl Zoo {
self.procs[*idx] = Status::Empty; self.procs[*idx] = Status::Empty;
self.empty.push(*idx); self.empty.push(*idx);
self.ids.remove(id); self.ids.remove(id);
self.dead.push(id); self.dead.insert(id);
} }
} }