diff --git a/esp-wifi/src/lib.rs b/esp-wifi/src/lib.rs index 0437b06a8f..6747bc831b 100644 --- a/esp-wifi/src/lib.rs +++ b/esp-wifi/src/lib.rs @@ -449,10 +449,6 @@ pub unsafe fn deinit_unchecked() -> Result<(), InitializationError> { // This shuts down the task switcher and timer tick interrupt. preempt::disable(); - crate::preempt::delete_all_tasks(); - - crate::preempt::timer::TIMER.with(|timer| timer.take()); - crate::flags::ESP_WIFI_INITIALIZED.store(false, Ordering::Release); Ok(()) diff --git a/esp-wifi/src/preempt/mod.rs b/esp-wifi/src/preempt/mod.rs index 2821b8a520..5d09fa76a4 100644 --- a/esp-wifi/src/preempt/mod.rs +++ b/esp-wifi/src/preempt/mod.rs @@ -33,6 +33,9 @@ pub(crate) fn setup(timer: crate::TimeBase) { pub(crate) fn disable() { disable_timer(); disable_multitasking(); + delete_all_tasks(); + + timer::TIMER.with(|timer| timer.take()); } fn allocate_main_task() -> *mut Context {