drop peer_mgr in time (#2064)

This commit is contained in:
Luna Yao
2026-04-06 05:31:05 +02:00
committed by GitHub
parent e3f089251c
commit 79b562cdc9
+7 -5
View File
@@ -867,7 +867,9 @@ impl Instance {
tokio::spawn(async move {
let mut output_tx = Some(first_round_output);
loop {
let Some(peer_manager) = peer_mgr.upgrade() else {
let close_notifier = Arc::new(Notify::new());
{
let Some(peer_mgr) = peer_mgr.upgrade() else {
tracing::warn!("peer manager is dropped, stop static ip check.");
if let Some(output_tx) = output_tx.take() {
let _ = output_tx.send(Err(Error::Unknown));
@@ -876,10 +878,9 @@ impl Instance {
return;
};
let close_notifier = Arc::new(Notify::new());
let mut new_nic_ctx = NicCtx::new(
peer_manager.get_global_ctx(),
&peer_manager,
peer_mgr.get_global_ctx(),
&peer_mgr,
peer_packet_receiver.clone(),
close_notifier.clone(),
);
@@ -899,7 +900,7 @@ impl Instance {
{
let ifname = new_nic_ctx.ifname().await;
let dns_runner = if let Some(ipv4) = ipv4_addr {
Self::create_magic_dns_runner(peer_manager, ifname, ipv4)
Self::create_magic_dns_runner(peer_mgr, ifname, ipv4)
} else {
None
};
@@ -907,6 +908,7 @@ impl Instance {
}
#[cfg(not(feature = "magic-dns"))]
Self::use_new_nic_ctx(nic_ctx.clone(), new_nic_ctx).await;
}
if let Some(output_tx) = output_tx.take() {
let _ = output_tx.send(Ok(()));