Skip to content

Commit e3dddff

Browse files
committed
use atomic::swap instead of atomic::fetch_update when cleaning
1 parent a40c338 commit e3dddff

File tree

1 file changed

+2
-11
lines changed

1 file changed

+2
-11
lines changed

forwarder/src/lib.rs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -162,17 +162,8 @@ fn try_cleanup(peer_manager: &RwLock<PeerManager>) {
162162
let mut peers = peer_manager.write();
163163
let mut used_client_count = 0;
164164
for peer in peers.get_all() {
165-
let result = peer
166-
.used
167-
.fetch_update(Ordering::Relaxed, Ordering::Relaxed, |used| {
168-
if used {
169-
Some(false)
170-
} else {
171-
None
172-
}
173-
});
174-
// `used` was false
175-
if result.is_err() {
165+
let used = peer.used.swap(false, Ordering::Relaxed);
166+
if !used {
176167
let client_addr = peer.get_client_addr();
177168
log::info!("cleaning peer that handled '{client_addr}'");
178169
peers.remove_peer(client_addr, peer.get_token());

0 commit comments

Comments
 (0)