diff options
| author | sodo <[email protected]> | 2024-01-02 14:48:27 +0900 |
|---|---|---|
| committer | sodo <[email protected]> | 2024-01-02 14:55:35 +0900 |
| commit | b0071c5070f6b4c932e703f2539c2eef74f09338 (patch) | |
| tree | 0912910841d10d33c0f570ae5708853336ca9201 /embassy-executor/src | |
| parent | 6ee153a3e2eec284c0d9d87f31801265c0604f74 (diff) | |
avr: sleep fix
Diffstat (limited to 'embassy-executor/src')
| -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 | } |
