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