Use of deprecated `compare_and_swap` and `spin_loop_hint`
JakkuSakura opened this issue · comments
Jakku Sakura commented
Please replace them
warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead
--> src/node.rs:2:26
|
2 | use core::sync::atomic::{spin_loop_hint, AtomicBool, AtomicI64, Ordering};
| ^^^^^^^^^^^^^^
|
= note: `#[warn(deprecated)]` on by default
warning: use of deprecated function `std::sync::atomic::spin_loop_hint`: use hint::spin_loop instead
--> src/node.rs:402:13
|
402 | spin_loop_hint();
| ^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:485:30
|
485 | if self.size_ctl.compare_and_swap(sc, -1, Ordering::SeqCst) == sc {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:602:22
|
602 | .compare_and_swap(size_ctl, -1, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:661:22
|
661 | .compare_and_swap(size_ctl, rs + 2, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:730:22
|
730 | .compare_and_swap(next_index, next_bound, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:780:34
|
780 | if self.size_ctl.compare_and_swap(sc, sc - 1, Ordering::SeqCst) == sc {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:1148:30
|
1148 | if self.size_ctl.compare_and_swap(sc, sc + 1, Ordering::SeqCst) == sc {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:1213:34
|
1213 | if self.size_ctl.compare_and_swap(sc, sc + 1, Ordering::SeqCst) == sc {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicIsize::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/map.rs:1216:37
|
1216 | } else if self.size_ctl.compare_and_swap(sc, rs + 2, Ordering::SeqCst) == sc {
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicI64::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/node.rs:334:14
|
334 | .compare_and_swap(0, WRITER, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicI64::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/node.rs:357:22
|
357 | .compare_and_swap(state, WRITER, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicI64::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/node.rs:391:22
|
391 | .compare_and_swap(state, state | WAITER, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: use of deprecated associated function `std::sync::atomic::AtomicI64::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
--> src/node.rs:459:18
|
459 | .compare_and_swap(s, s + READER, Ordering::SeqCst)
| ^^^^^^^^^^^^^^^^
warning: 14 warnings emitted
Jon Gjengset commented
I'd be happy to accept a PR! The changes should be fairly simple — the failure ordering for compare_exchange
can be Relaxed
in all these cases I believe.