jonhoo / flurry

A port of Java's ConcurrentHashMap to Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Use of deprecated `compare_and_swap` and `spin_loop_hint`

JakkuSakura opened this issue · comments

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

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.