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 | ||||||
|  |             .0 | ||||||
|  |             .state | ||||||
|  |             .compare_exchange( | ||||||
|                 USER_STATE_EMPTY,        // current |                 USER_STATE_EMPTY,        // current | ||||||
|                 USER_STATE_PENDING_PING, // new |                 USER_STATE_PENDING_PING, // new | ||||||
|                 Ordering::AcqRel, |                 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 | ||||||
|  |             .0 | ||||||
|  |             .state | ||||||
|  |             .compare_exchange( | ||||||
|                 USER_STATE_RECEIVED_PONG, // current |                 USER_STATE_RECEIVED_PONG, // current | ||||||
|                 USER_STATE_EMPTY,         // new |                 USER_STATE_EMPTY,         // new | ||||||
|                 Ordering::AcqRel, |                 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 | ||||||
|  |             .0 | ||||||
|  |             .state | ||||||
|  |             .compare_exchange( | ||||||
|                 USER_STATE_PENDING_PONG,  // current |                 USER_STATE_PENDING_PONG,  // current | ||||||
|                 USER_STATE_RECEIVED_PONG, // new |                 USER_STATE_RECEIVED_PONG, // new | ||||||
|                 Ordering::AcqRel, |                 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