@@ -6,11 +6,7 @@ use anyhow::Context;
6
6
use log:: info;
7
7
use mio:: { Events , Poll , Registry } ;
8
8
use parking_lot:: { RwLock , RwLockUpgradableReadGuard , RwLockWriteGuard } ;
9
- use std:: {
10
- net:: SocketAddr ,
11
- sync:: { atomic:: Ordering , Arc } ,
12
- time:: Duration ,
13
- } ;
9
+ use std:: { net:: SocketAddr , sync:: Arc , time:: Duration } ;
14
10
use {
15
11
peer:: { Peer , PeerManager } ,
16
12
socket:: { Socket , SocketTrait , SocketUri } ,
@@ -66,7 +62,7 @@ pub fn run_server(listen_uri: SocketUri, remote_uri: SocketUri, passphrase: Opti
66
62
let peers = peer_manager. upgradable_read ( ) ;
67
63
match peers. find_peer_with_client_addr ( & from_addr) {
68
64
Some ( peer) => {
69
- peer. used . store ( true , Ordering :: Relaxed ) ;
65
+ peer. set_used ( ) ;
70
66
// client ---> server socket ---peer socket----> remote
71
67
peer. socket . send ( & buffer[ ..size] ) . ok ( ) ;
72
68
}
@@ -134,7 +130,7 @@ fn peers_thread(
134
130
for event in & events {
135
131
let token = event. token ( ) ;
136
132
let peer = peers. find_peer_with_token ( & token) . unwrap ( ) ;
137
- peer. used . store ( true , Ordering :: Relaxed ) ;
133
+ peer. set_used ( ) ;
138
134
// each epoll event may result in multiple readiness events
139
135
while let Ok ( size) = peer. socket . recv ( & mut buffer) {
140
136
if let Some ( ref passphrase) = passphrase {
@@ -160,7 +156,7 @@ fn try_cleanup(peer_manager: &RwLock<PeerManager>) {
160
156
let mut peers = peer_manager. write ( ) ;
161
157
let mut used_client_count = 0 ;
162
158
for peer in peers. get_all ( ) {
163
- let used = peer. used . swap ( false , Ordering :: Relaxed ) ;
159
+ let used = peer. reset_used ( ) ;
164
160
if !used {
165
161
let client_addr = peer. get_client_addr ( ) ;
166
162
log:: info!( "cleaning peer that handled '{client_addr}'" ) ;
0 commit comments