Skip to content

Commit e3c3455

Browse files
apply pr review
1 parent ac556bf commit e3c3455

File tree

3 files changed

+33
-32
lines changed

3 files changed

+33
-32
lines changed

net-tools/netwatch/src/netmon.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ use anyhow::Result;
44
use futures_lite::future::Boxed as BoxFuture;
55
use tokio::sync::{mpsc, oneshot};
66
use tokio_util::task::AbortOnDropHandle;
7-
use tracing::warn;
87

98
mod actor;
109
#[cfg(target_os = "android")]
@@ -29,8 +28,7 @@ use self::actor::{Actor, ActorMessage};
2928
#[derive(Debug)]
3029
pub struct Monitor {
3130
/// Task handle for the monitor task.
32-
#[allow(dead_code)]
33-
handle: AbortOnDropHandle<()>,
31+
_handle: AbortOnDropHandle<()>,
3432
actor_tx: mpsc::Sender<ActorMessage>,
3533
}
3634

@@ -41,13 +39,11 @@ impl Monitor {
4139
let actor_tx = actor.subscribe();
4240

4341
let handle = tokio::task::spawn(async move {
44-
if let Err(err) = actor.run().await {
45-
warn!("netmon actor died: {:?}", err);
46-
}
42+
actor.run().await;
4743
});
4844

4945
Ok(Monitor {
50-
handle: AbortOnDropHandle::new(handle),
46+
_handle: AbortOnDropHandle::new(handle),
5147
actor_tx,
5248
})
5349
}

net-tools/netwatch/src/netmon/actor.rs

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ impl Actor {
101101
self.actor_sender.clone()
102102
}
103103

104-
pub(super) async fn run(mut self) -> Result<()> {
104+
pub(super) async fn run(mut self) {
105105
const DEBOUNCE: Duration = Duration::from_millis(250);
106106

107107
let mut last_event = None;
@@ -111,6 +111,7 @@ impl Actor {
111111
loop {
112112
tokio::select! {
113113
biased;
114+
114115
_ = debounce_interval.tick() => {
115116
if let Some(time_jumped) = last_event.take() {
116117
if let Err(err) = self.handle_potential_change(time_jumped).await {
@@ -126,38 +127,43 @@ impl Actor {
126127
debounce_interval.reset_immediately();
127128
}
128129
}
129-
Some(event) = self.mon_receiver.recv() => {
130+
event = self.mon_receiver.recv() => {
130131
match event {
131-
NetworkMessage::Change => {
132+
Some(NetworkMessage::Change) => {
132133
trace!("network activity detected");
133134
last_event.replace(false);
134135
debounce_interval.reset_immediately();
135136
}
137+
None => {
138+
debug!("shutting down, network monitor receiver gone");
139+
break;
140+
}
136141
}
137142
}
138-
Some(msg) = self.actor_receiver.recv() => match msg {
139-
ActorMessage::Subscribe(callback, s) => {
140-
let token = self.next_callback_token();
141-
self.callbacks.insert(token, Arc::new(callback));
142-
s.send(token).ok();
143-
}
144-
ActorMessage::Unsubscribe(token, s) => {
145-
self.callbacks.remove(&token);
146-
s.send(()).ok();
147-
}
148-
ActorMessage::NetworkChange => {
149-
trace!("external network activity detected");
150-
last_event.replace(false);
151-
debounce_interval.reset_immediately();
143+
msg = self.actor_receiver.recv() => {
144+
match msg {
145+
Some(ActorMessage::Subscribe(callback, s)) => {
146+
let token = self.next_callback_token();
147+
self.callbacks.insert(token, Arc::new(callback));
148+
s.send(token).ok();
149+
}
150+
Some(ActorMessage::Unsubscribe(token, s)) => {
151+
self.callbacks.remove(&token);
152+
s.send(()).ok();
153+
}
154+
Some(ActorMessage::NetworkChange) => {
155+
trace!("external network activity detected");
156+
last_event.replace(false);
157+
debounce_interval.reset_immediately();
158+
}
159+
None => {
160+
debug!("shutting down, actor receiver gone");
161+
break;
162+
}
152163
}
153-
},
154-
else => {
155-
break;
156164
}
157165
}
158166
}
159-
160-
Ok(())
161167
}
162168

163169
fn next_callback_token(&mut self) -> CallbackToken {

net-tools/netwatch/src/netmon/bsd.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ use crate::{interfaces::bsd::WireMessage, ip::is_link_local};
1212

1313
#[derive(Debug)]
1414
pub(super) struct RouteMonitor {
15-
#[allow(dead_code)]
16-
handle: AbortOnDropHandle<()>,
15+
_handle: AbortOnDropHandle<()>,
1716
}
1817

1918
fn create_socket() -> Result<tokio::net::UnixStream> {
@@ -72,7 +71,7 @@ impl RouteMonitor {
7271
});
7372

7473
Ok(RouteMonitor {
75-
handle: AbortOnDropHandle::new(handle),
74+
_handle: AbortOnDropHandle::new(handle),
7675
})
7776
}
7877
}

0 commit comments

Comments
 (0)