diff options
| author | Dario Nieuwenhuis <[email protected]> | 2020-12-30 01:06:05 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2020-12-30 01:07:22 +0100 |
| commit | bb6f25d010dd9f227ab89fc03c1f913d407ed922 (patch) | |
| tree | 0d1cd9ad37b1cd848bea9ac588085bab3c269dd0 | |
| parent | 015b6bbce4fa93a58458bd72a5f7168d746f1e37 (diff) | |
Remove use of deprecated compare_and_swap.
| -rw-r--r-- | embassy-macros/src/lib.rs | 2 | ||||
| -rw-r--r-- | embassy/src/executor/mod.rs | 4 | ||||
| -rw-r--r-- | embassy/src/util/forever.rs | 6 |
3 files changed, 8 insertions, 4 deletions
diff --git a/embassy-macros/src/lib.rs b/embassy-macros/src/lib.rs index 091e08cfa..c2e2d9e27 100644 --- a/embassy-macros/src/lib.rs +++ b/embassy-macros/src/lib.rs | |||
| @@ -150,7 +150,7 @@ pub fn interrupt_take(item: TokenStream) -> TokenStream { | |||
| 150 | 150 | ||
| 151 | static TAKEN: ::core::sync::atomic::AtomicBool = ::core::sync::atomic::AtomicBool::new(false); | 151 | static TAKEN: ::core::sync::atomic::AtomicBool = ::core::sync::atomic::AtomicBool::new(false); |
| 152 | 152 | ||
| 153 | if TAKEN.compare_and_swap(false, true, ::core::sync::atomic::Ordering::AcqRel) { | 153 | if TAKEN.compare_exchange(false, true, ::core::sync::atomic::Ordering::AcqRel, ::core::sync::atomic::Ordering::Acquire).is_err() { |
| 154 | panic!("IRQ Already taken"); | 154 | panic!("IRQ Already taken"); |
| 155 | } | 155 | } |
| 156 | 156 | ||
diff --git a/embassy/src/executor/mod.rs b/embassy/src/executor/mod.rs index 845d94c2c..facd71d1b 100644 --- a/embassy/src/executor/mod.rs +++ b/embassy/src/executor/mod.rs | |||
| @@ -105,8 +105,8 @@ impl<F: Future + 'static> Task<F> { | |||
| 105 | if task | 105 | if task |
| 106 | .header | 106 | .header |
| 107 | .state | 107 | .state |
| 108 | .compare_and_swap(0, state, Ordering::AcqRel) | 108 | .compare_exchange(0, state, Ordering::AcqRel, Ordering::Acquire) |
| 109 | == 0 | 109 | .is_ok() |
| 110 | { | 110 | { |
| 111 | // Initialize the task | 111 | // Initialize the task |
| 112 | task.header.poll_fn.write(Self::poll); | 112 | task.header.poll_fn.write(Self::poll); |
diff --git a/embassy/src/util/forever.rs b/embassy/src/util/forever.rs index 80dc0edac..b1bfd1669 100644 --- a/embassy/src/util/forever.rs +++ b/embassy/src/util/forever.rs | |||
| @@ -19,7 +19,11 @@ impl<T> Forever<T> { | |||
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | pub fn put(&'static self, val: T) -> &'static mut T { | 21 | pub fn put(&'static self, val: T) -> &'static mut T { |
| 22 | if self.used.compare_and_swap(false, true, Ordering::SeqCst) { | 22 | if self |
| 23 | .used | ||
| 24 | .compare_exchange(false, true, Ordering::AcqRel, Ordering::Acquire) | ||
| 25 | .is_ok() | ||
| 26 | { | ||
| 23 | panic!("Forever.put() called multiple times"); | 27 | panic!("Forever.put() called multiple times"); |
| 24 | } | 28 | } |
| 25 | 29 | ||
