aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor
diff options
context:
space:
mode:
authorsodo <[email protected]>2024-01-02 14:48:27 +0900
committersodo <[email protected]>2024-01-02 14:55:35 +0900
commitb0071c5070f6b4c932e703f2539c2eef74f09338 (patch)
tree0912910841d10d33c0f570ae5708853336ca9201 /embassy-executor
parent6ee153a3e2eec284c0d9d87f31801265c0604f74 (diff)
avr: sleep fix
Diffstat (limited to 'embassy-executor')
-rw-r--r--embassy-executor/src/arch/avr.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/embassy-executor/src/arch/avr.rs b/embassy-executor/src/arch/avr.rs
index fa6afe762..11e81ed9a 100644
--- a/embassy-executor/src/arch/avr.rs
+++ b/embassy-executor/src/arch/avr.rs
@@ -57,10 +57,13 @@ mod thread {
57 57
58 loop { 58 loop {
59 unsafe { 59 unsafe {
60 avr_device::interrupt::disable();
60 if SIGNAL_WORK_THREAD_MODE.swap(false, Ordering::SeqCst) { 61 if SIGNAL_WORK_THREAD_MODE.swap(false, Ordering::SeqCst) {
61 self.inner.poll(); 62 avr_device::interrupt::enable();
62 } else {
63 avr_device::asm::sleep(); 63 avr_device::asm::sleep();
64 } else {
65 avr_device::interrupt::enable();
66 self.inner.poll();
64 } 67 }
65 } 68 }
66 } 69 }