> <@adamgreig:matrix.org> do you have some code where you have the static_cell mutex and can't get the peripheral back after the task used it? * I'm probably missing some stuff but just whipped this up in gedit. context: using embassy executor in thread mode. I didn't include the crates, the mutexes are from embassy\_sync. ``` type PDOut = Mutex>; static LED_1 StaticCell = StaticCell::new(); #[main] async fn main() { let led_1 = LED_1.init(Mutex::new( PinDriver::output(p.pins.gpio10.downgrade()).unwrap(), )); spawner.spawn(mytask(led_1)).ok; //am I passing led_1 correctly? This does send it to my_task. something_that_blocks_until_mytask_exits.await; led_1.toggle(); //is this right? } #[task] async fn mytask(led: &'static PDOut) { Timer::after_secs(1).await; led.toggle(); } ```