diff options
Diffstat (limited to 'embassy-executor')
| -rw-r--r-- | embassy-executor/src/arch/avr.rs | 7 |
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 | } |
