David[m]12: This is what I currently am doing ```rs fn main() { // ... GLOBAL_STATE.lock(|s| s.borrow_mut().replace(my_t)); } static GLOBAL_STATE: blocking_mutex::CriticalSectionMutex>> = ...; #[interrupt] fn PIO0_IRQ_0() { static mut INTERNAL_STATE: Option<&'static mut T> = None; let internal_state = INTERNAL_STATE.get_or_insert_with(|| GLOBAL_STATE.lock(|cell| cell.borrow_mut().take().unwrap())); // internal_state.... } ``` but it feels a bit dirty, so hoping someone has a better way haha