refactor: standardize channel naming with tx and rx suffixes

Rename internal channel senders and receivers to follow standard Rust conventions for improved code consistency and readability.
This commit is contained in:
Nils Andreas Svee committed 2026-04-13 15:07:00 +07:00
1 parent e5ba021a96
commit 671e3f2671
6 files changed
+36 -36

No files matched your search

+5 -5
View File
@@ -24,8 +24,8 @@ pub struct Baseliner {
pub owd_recent: Arc<Mutex<HashMap<IpAddr, ReflectorStats>>>, pub owd_recent: Arc<Mutex<HashMap<IpAddr, ReflectorStats>>>,
pub reselect_trigger: Sender<bool>, pub reselect_trigger: Sender<bool>,
pub start_time: Instant, pub start_time: Instant,
pub stats_receiver: Receiver<PingReply>, pub stats_rx: Receiver<PingReply>,
pub metrics_sender: SyncSender<Metric>, pub metrics_tx: SyncSender<Metric>,
} }
fn ewma_factor(tick: f64, dur: f64) -> f64 { fn ewma_factor(tick: f64, dur: f64) -> f64 {
@@ -49,7 +49,7 @@ impl Baseliner {
let clock = Time::new(ClockId::Realtime); let clock = Time::new(ClockId::Realtime);
loop { loop {
let time_data = self.stats_receiver.recv()?; let time_data = self.stats_rx.recv()?;
let mut owd_baseline_map = self.owd_baseline.lock_anyhow()?; let mut owd_baseline_map = self.owd_baseline.lock_anyhow()?;
let mut owd_recent_map = self.owd_recent.lock_anyhow()?; let mut owd_recent_map = self.owd_recent.lock_anyhow()?;
@@ -107,7 +107,7 @@ impl Baseliner {
"Reflector {} has OWD > 5 seconds more than baseline, triggering reselection", "Reflector {} has OWD > 5 seconds more than baseline, triggering reselection",
time_data.reflector time_data.reflector
); );
let _ = self.metrics_sender.try_send(Metric::Event { let _ = self.metrics_tx.try_send(Metric::Event {
name: "reselection", name: "reselection",
reason: "anomaly", reason: "anomaly",
reflector: Some(time_data.reflector), reflector: Some(time_data.reflector),
@@ -136,7 +136,7 @@ impl Baseliner {
} }
} }
let _ = self.metrics_sender.try_send(Metric::Baseline { let _ = self.metrics_tx.try_send(Metric::Baseline {
reflector: time_data.reflector, reflector: time_data.reflector,
baseline_up_ewma: owd_baseline.up_ewma, baseline_up_ewma: owd_baseline.up_ewma,
baseline_down_ewma: owd_baseline.down_ewma, baseline_down_ewma: owd_baseline.down_ewma,
+20 -20
View File
@@ -79,24 +79,24 @@ fn main() -> anyhow::Result<()> {
} }
} }
let (baseliner_stats_sender, baseliner_stats_receiver) = channel(); let (baseliner_stats_tx, baseliner_stats_rx) = channel();
let (reselect_sender, reselect_receiver) = channel(); let (reselect_tx, reselect_rx) = channel();
let (metrics_sender, metrics_receiver) = sync_channel(1000); let (metrics_tx, metrics_rx) = sync_channel(1000);
let ping_tx = config let ping_tx = config
.observability_export_ping_metrics .observability_export_ping_metrics
.then(|| metrics_sender.clone()); .then(|| metrics_tx.clone());
let baseline_tx = config let baseline_tx = config
.observability_export_baseline_metrics .observability_export_baseline_metrics
.then(|| metrics_sender.clone()); .then(|| metrics_tx.clone());
let event_tx = config let event_tx = config
.observability_export_events .observability_export_events
.then(|| metrics_sender.clone()); .then(|| metrics_tx.clone());
let (mut pinger_receiver, mut pinger_sender) = match config.measurement_type { let (mut ping_listener, mut ping_sender) = match config.measurement_type {
MeasurementType::Icmp => ( MeasurementType::Icmp => (
Box::new(PingerICMPEchoListener {}) as Box<dyn PingListener + Send>, Box::new(PingerICMPEchoListener {}) as Box<dyn PingListener + Send>,
Box::new(PingerICMPEchoSender {}) as Box<dyn PingSender + Send>, Box::new(PingerICMPEchoSender {}) as Box<dyn PingSender + Send>,
@@ -114,10 +114,10 @@ fn main() -> anyhow::Result<()> {
config: config.clone(), config: config.clone(),
owd_baseline: owd_baseline.clone(), owd_baseline: owd_baseline.clone(),
owd_recent: owd_recent.clone(), owd_recent: owd_recent.clone(),
reselect_trigger: reselect_sender.clone(), reselect_trigger: reselect_tx.clone(),
start_time: start_t, start_time: start_t,
stats_receiver: baseliner_stats_receiver, stats_rx: baseliner_stats_rx,
metrics_sender: metrics_sender.clone(), metrics_tx: metrics_tx.clone(),
}; };
let down_qdisc = Netlink::qdisc_from_ifname(config.download_interface.as_str())?; let down_qdisc = Netlink::qdisc_from_ifname(config.download_interface.as_str())?;
@@ -146,17 +146,17 @@ fn main() -> anyhow::Result<()> {
let (error_tx, error_rx) = channel::<anyhow::Error>(); let (error_tx, error_rx) = channel::<anyhow::Error>();
let err_tx = error_tx.clone(); let err_tx = error_tx.clone();
let metrics_sender_clone = metrics_sender.clone(); let metrics_tx_clone = metrics_tx.clone();
let reflector_peers_lock_clone = reflector_peers_lock.clone(); let reflector_peers_lock_clone = reflector_peers_lock.clone();
thread::Builder::new() thread::Builder::new()
.name("receiver".to_string()) .name("receiver".to_string())
.spawn(move || { .spawn(move || {
if let Err(e) = pinger_receiver.listen( if let Err(e) = ping_listener.listen(
id, id,
config.measurement_type, config.measurement_type,
reflector_peers_lock_clone, reflector_peers_lock_clone,
baseliner_stats_sender, baseliner_stats_tx,
metrics_sender_clone, metrics_tx_clone,
) { ) {
let _ = err_tx.send(e); let _ = err_tx.send(e);
} }
@@ -176,7 +176,7 @@ fn main() -> anyhow::Result<()> {
thread::Builder::new() thread::Builder::new()
.name("sender".to_string()) .name("sender".to_string())
.spawn(move || { .spawn(move || {
if let Err(e) = pinger_sender.send( if let Err(e) = ping_sender.send(
id, id,
config.measurement_type, config.measurement_type,
reflector_peers_lock_clone, reflector_peers_lock_clone,
@@ -192,8 +192,8 @@ fn main() -> anyhow::Result<()> {
owd_recent: owd_recent.clone(), owd_recent: owd_recent.clone(),
reflector_peers_lock: reflector_peers_lock.clone(), reflector_peers_lock: reflector_peers_lock.clone(),
reflector_pool, reflector_pool,
trigger_channel: reselect_receiver, trigger_channel: reselect_rx,
metrics_sender: metrics_sender.clone(), metrics_tx: metrics_tx.clone(),
}; };
let err_tx = error_tx.clone(); let err_tx = error_tx.clone();
thread::Builder::new() thread::Builder::new()
@@ -228,10 +228,10 @@ fn main() -> anyhow::Result<()> {
owd_baseline, owd_baseline,
owd_recent, owd_recent,
reflector_peers_lock, reflector_peers_lock,
reselect_sender, reselect_tx,
dl_direction, dl_direction,
ul_direction, ul_direction,
metrics_sender.clone(), metrics_tx.clone(),
)?; )?;
debug!( debug!(
@@ -255,7 +255,7 @@ fn main() -> anyhow::Result<()> {
let metrics = Metrics { let metrics = Metrics {
config, config,
metrics_receiver, metrics_rx,
}; };
let err_tx = error_tx.clone(); let err_tx = error_tx.clone();
+3 -3
View File
@@ -120,7 +120,7 @@ pub enum Metric {
pub struct Metrics { pub struct Metrics {
pub config: Config, pub config: Config,
pub metrics_receiver: Receiver<Metric>, pub metrics_rx: Receiver<Metric>,
} }
impl Metrics { impl Metrics {
@@ -153,7 +153,7 @@ impl Metrics {
loop { loop {
// block until first metric or timeout // block until first metric or timeout
match self.metrics_receiver.recv_timeout(timeout) { match self.metrics_rx.recv_timeout(timeout) {
Ok(metric) => batch.push(metric), Ok(metric) => batch.push(metric),
Err(RecvTimeoutError::Timeout) => { Err(RecvTimeoutError::Timeout) => {
if !batch.is_empty() { if !batch.is_empty() {
@@ -167,7 +167,7 @@ impl Metrics {
// greedily drain without blocking // greedily drain without blocking
loop { loop {
match self.metrics_receiver.try_recv() { match self.metrics_rx.try_recv() {
Ok(metric) => batch.push(metric), Ok(metric) => batch.push(metric),
Err(_) => break, Err(_) => break,
} }
+4 -4
View File
@@ -54,8 +54,8 @@ pub trait PingListener {
id: u16, id: u16,
type_: MeasurementType, type_: MeasurementType,
reflectors_lock: Arc<RwLock<Vec<IpAddr>>>, reflectors_lock: Arc<RwLock<Vec<IpAddr>>>,
stats_sender: Sender<PingReply>, stats_tx: Sender<PingReply>,
metrics_sender: SyncSender<Metric>, metrics_tx: SyncSender<Metric>,
) -> anyhow::Result<()> { ) -> anyhow::Result<()> {
let socket = &mut open_socket(type_)?; let socket = &mut open_socket(type_)?;
@@ -84,7 +84,7 @@ pub trait PingListener {
} }
}; };
let _ = metrics_sender.try_send(Metric::Ping { let _ = metrics_tx.try_send(Metric::Ping {
reflector: reply.reflector, reflector: reply.reflector,
measurement_type: reply.measurement_type, measurement_type: reply.measurement_type,
rtt: reply.rtt, rtt: reply.rtt,
@@ -106,7 +106,7 @@ pub trait PingListener {
reply.up_time, reply.up_time,
reply.down_time reply.down_time
); );
if let Err(e) = stats_sender.send(reply) { if let Err(e) = stats_tx.send(reply) {
warn!("Stats channel closed, stopping listener: {}", e); warn!("Stats channel closed, stopping listener: {}", e);
break Ok(()); break Ok(());
} }
+3 -3
View File
@@ -109,7 +109,7 @@ pub struct Ratecontroller {
state_dl: State, state_dl: State,
state_ul: State, state_ul: State,
up_direction: StatsDirection, up_direction: StatsDirection,
metrics_sender: SyncSender<Metric>, metrics_tx: SyncSender<Metric>,
} }
impl Ratecontroller { impl Ratecontroller {
@@ -248,7 +248,7 @@ impl Ratecontroller {
reselect_trigger: Sender<bool>, reselect_trigger: Sender<bool>,
down_direction: StatsDirection, down_direction: StatsDirection,
up_direction: StatsDirection, up_direction: StatsDirection,
metrics_sender: SyncSender<Metric>, metrics_tx: SyncSender<Metric>,
) -> anyhow::Result<Self> { ) -> anyhow::Result<Self> {
let dl_qdisc = Netlink::qdisc_from_ifname(config.download_interface.as_str())?; let dl_qdisc = Netlink::qdisc_from_ifname(config.download_interface.as_str())?;
let dl_safe_rates = let dl_safe_rates =
@@ -269,7 +269,7 @@ impl Ratecontroller {
state_dl: State::new(dl_qdisc, cur_rx, dl_safe_rates), state_dl: State::new(dl_qdisc, cur_rx, dl_safe_rates),
state_ul: State::new(ul_qdisc, cur_tx, ul_safe_rates), state_ul: State::new(ul_qdisc, cur_tx, ul_safe_rates),
up_direction, up_direction,
metrics_sender, metrics_tx,
}) })
} }
+1 -1
View File
@@ -15,7 +15,7 @@ pub struct ReflectorSelector {
pub reflector_peers_lock: Arc<RwLock<Vec<IpAddr>>>, pub reflector_peers_lock: Arc<RwLock<Vec<IpAddr>>>,
pub reflector_pool: Vec<IpAddr>, pub reflector_pool: Vec<IpAddr>,
pub trigger_channel: Receiver<bool>, pub trigger_channel: Receiver<bool>,
pub metrics_sender: SyncSender<Metric>, pub metrics_tx: SyncSender<Metric>,
} }
impl ReflectorSelector { impl ReflectorSelector {