fix: improve error handling and logging in various modules

This commit is contained in:
Tunglies
2025-11-05 02:11:43 +08:00
parent 28483ff9db
commit 3e2f605e77
6 changed files with 63 additions and 35 deletions

View File

@@ -155,15 +155,13 @@ impl Config {
};
let runtime = Config::runtime().await;
let config = runtime
.latest_arc()
let runtime_arc = runtime.latest_arc();
let config = runtime_arc
.config
.as_ref()
.ok_or_else(|| anyhow!("failed to get runtime config"))?
.clone();
drop(runtime); // 显式释放锁
.ok_or_else(|| anyhow!("failed to get runtime config"))?;
help::save_yaml(&path, &config, Some("# Generated by Clash Verge")).await?;
help::save_yaml(&path, config, Some("# Generated by Clash Verge")).await?;
Ok(path)
}

View File

@@ -87,7 +87,7 @@ impl IProfiles {
}
/// 只修改currentvalid和chain
pub fn patch_config(&mut self, patch: &IProfiles) -> Result<()> {
pub fn patch_config(&mut self, patch: &IProfiles) {
if self.items.is_none() {
self.items = Some(vec![]);
}
@@ -100,8 +100,6 @@ impl IProfiles {
self.current = some_uid.cloned();
}
}
Ok(())
}
pub fn get_current(&self) -> Option<&String> {