File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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`
22672267extern "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// -----------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments