Skip to content

Commit aca0125

Browse files
Use critical_section::with
1 parent 8cd9a22 commit aca0125

1 file changed

Lines changed: 8 additions & 14 deletions

File tree

src/main.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2265,20 +2265,14 @@ extern "C" fn power_control(power_mode: common::PowerMode) -> ! {
22652265
/// * If `value == old_value`, sets `value = new_value` and returns `true`
22662266
/// * If `value != old_value`, returns `false`
22672267
extern "C" fn compare_and_swap_bool(value: &AtomicBool, old_value: bool, new_value: bool) -> bool {
2268-
let state = unsafe { critical_section::acquire() };
2269-
2270-
let result = if value.load(Ordering::Relaxed) == old_value {
2271-
value.store(new_value, Ordering::Relaxed);
2272-
true
2273-
} else {
2274-
false
2275-
};
2276-
2277-
unsafe {
2278-
critical_section::release(state);
2279-
}
2280-
2281-
result
2268+
critical_section::with(|_cs| {
2269+
if value.load(Ordering::Relaxed) == old_value {
2270+
value.store(new_value, Ordering::Relaxed);
2271+
true
2272+
} else {
2273+
false
2274+
}
2275+
})
22822276
}
22832277

22842278
// -----------------------------------------------------------------------------

0 commit comments

Comments
 (0)