use super::*;
impl SignalAddrs {
#[allow(static_mut_refs)]
pub(crate) fn push(euv_id: usize, addr: usize) {
unsafe {
let map_mut_ptr: *mut HashMap<usize, Vec<usize>> =
SIGNAL_ADDR_MAP.deref().get_0().get();
let map: &mut HashMap<usize, Vec<usize>> = &mut *map_mut_ptr;
map.entry(euv_id).or_insert_with(Vec::new).push(addr);
}
}
#[allow(static_mut_refs)]
pub(crate) fn take(euv_id: usize) -> Option<Vec<usize>> {
unsafe {
let map_mut_ptr: *mut HashMap<usize, Vec<usize>> =
SIGNAL_ADDR_MAP.deref().get_0().get();
let map: &mut HashMap<usize, Vec<usize>> = &mut *map_mut_ptr;
map.remove(&euv_id)
}
}
}