Replace deprecated compare_and_swap with compare_exchange (#514)
The `compare_and_swap` method on atomics is now deprecated in favor of `compare_exchange`. Since the author of #510 closed that PR, this is just #510 with rustfmt run. I also removed an unnecessary trailing semicolon that the latest rust compiler now complains about. Signed-off-by: Eliza Weisman <eliza@buoyant.io> Co-authored-by: Kornel <kornel@cloudflare.com>
This commit is contained in:
@@ -211,11 +211,16 @@ impl ReceivedPing {
|
|||||||
|
|
||||||
impl UserPings {
|
impl UserPings {
|
||||||
pub(crate) fn send_ping(&self) -> Result<(), Option<proto::Error>> {
|
pub(crate) fn send_ping(&self) -> Result<(), Option<proto::Error>> {
|
||||||
let prev = self.0.state.compare_and_swap(
|
let prev = self
|
||||||
USER_STATE_EMPTY, // current
|
.0
|
||||||
USER_STATE_PENDING_PING, // new
|
.state
|
||||||
Ordering::AcqRel,
|
.compare_exchange(
|
||||||
);
|
USER_STATE_EMPTY, // current
|
||||||
|
USER_STATE_PENDING_PING, // new
|
||||||
|
Ordering::AcqRel,
|
||||||
|
Ordering::Acquire,
|
||||||
|
)
|
||||||
|
.unwrap_or_else(|v| v);
|
||||||
|
|
||||||
match prev {
|
match prev {
|
||||||
USER_STATE_EMPTY => {
|
USER_STATE_EMPTY => {
|
||||||
@@ -234,11 +239,16 @@ impl UserPings {
|
|||||||
// Must register before checking state, in case state were to change
|
// Must register before checking state, in case state were to change
|
||||||
// before we could register, and then the ping would just be lost.
|
// before we could register, and then the ping would just be lost.
|
||||||
self.0.pong_task.register(cx.waker());
|
self.0.pong_task.register(cx.waker());
|
||||||
let prev = self.0.state.compare_and_swap(
|
let prev = self
|
||||||
USER_STATE_RECEIVED_PONG, // current
|
.0
|
||||||
USER_STATE_EMPTY, // new
|
.state
|
||||||
Ordering::AcqRel,
|
.compare_exchange(
|
||||||
);
|
USER_STATE_RECEIVED_PONG, // current
|
||||||
|
USER_STATE_EMPTY, // new
|
||||||
|
Ordering::AcqRel,
|
||||||
|
Ordering::Acquire,
|
||||||
|
)
|
||||||
|
.unwrap_or_else(|v| v);
|
||||||
|
|
||||||
match prev {
|
match prev {
|
||||||
USER_STATE_RECEIVED_PONG => Poll::Ready(Ok(())),
|
USER_STATE_RECEIVED_PONG => Poll::Ready(Ok(())),
|
||||||
@@ -252,11 +262,16 @@ impl UserPings {
|
|||||||
|
|
||||||
impl UserPingsRx {
|
impl UserPingsRx {
|
||||||
fn receive_pong(&self) -> bool {
|
fn receive_pong(&self) -> bool {
|
||||||
let prev = self.0.state.compare_and_swap(
|
let prev = self
|
||||||
USER_STATE_PENDING_PONG, // current
|
.0
|
||||||
USER_STATE_RECEIVED_PONG, // new
|
.state
|
||||||
Ordering::AcqRel,
|
.compare_exchange(
|
||||||
);
|
USER_STATE_PENDING_PONG, // current
|
||||||
|
USER_STATE_RECEIVED_PONG, // new
|
||||||
|
Ordering::AcqRel,
|
||||||
|
Ordering::Acquire,
|
||||||
|
)
|
||||||
|
.unwrap_or_else(|v| v);
|
||||||
|
|
||||||
if prev == USER_STATE_PENDING_PONG {
|
if prev == USER_STATE_PENDING_PONG {
|
||||||
self.0.pong_task.wake();
|
self.0.pong_task.wake();
|
||||||
|
|||||||
@@ -1371,7 +1371,7 @@ impl proto::Peer for Peer {
|
|||||||
reason: Reason::PROTOCOL_ERROR,
|
reason: Reason::PROTOCOL_ERROR,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
};
|
}
|
||||||
|
|
||||||
b = b.version(Version::HTTP_2);
|
b = b.version(Version::HTTP_2);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user