refactor: enhance error handling in Timer and update server argument collection

This commit is contained in:
Tunglies
2025-11-06 10:42:21 +08:00
parent 651513c826
commit aaf3ebe547
4 changed files with 11 additions and 6 deletions

View File

@@ -234,4 +234,7 @@ suspicious_operation_groupings = "deny"
string_lit_as_bytes = "deny" string_lit_as_bytes = "deny"
significant_drop_tightening = "deny" significant_drop_tightening = "deny"
significant_drop_in_scrutinee = "deny" significant_drop_in_scrutinee = "deny"
redundant_clone = "deny" redundant_clone = "deny"
# option_if_let_else = "deny" // 过于激进,暂时不开启
needless_pass_by_ref_mut = "deny"
needless_collect = "deny"

View File

@@ -252,8 +252,8 @@ impl Timer {
// Now perform async operations without holding locks // Now perform async operations without holding locks
for (uid, tid, interval) in operations_to_add { for (uid, tid, interval) in operations_to_add {
// Re-acquire locks for individual operations // Re-acquire locks for individual operations
let mut delay_timer = self.delay_timer.write(); let delay_timer = self.delay_timer.write();
if let Err(e) = self.add_task(&mut delay_timer, uid.clone(), tid, interval) { if let Err(e) = self.add_task(&delay_timer, uid.clone(), tid, interval) {
logging_error!(Type::Timer, "Failed to add task for uid {}: {}", uid, e); logging_error!(Type::Timer, "Failed to add task for uid {}: {}", uid, e);
// Rollback on failure - remove from timer_map // Rollback on failure - remove from timer_map
@@ -370,7 +370,7 @@ impl Timer {
/// Add a timer task with better error handling /// Add a timer task with better error handling
fn add_task( fn add_task(
&self, &self,
delay_timer: &mut DelayTimer, delay_timer: &DelayTimer,
uid: String, uid: String,
tid: TaskID, tid: TaskID,
minutes: u64, minutes: u64,

View File

@@ -4,8 +4,8 @@ fn main() {
console_subscriber::init(); console_subscriber::init();
// Check for --no-tray command line argument // Check for --no-tray command line argument
let args: Vec<String> = std::env::args().collect(); #[cfg(target_os = "linux")]
if args.contains(&"--no-tray".into()) { if std::env::args().any(|x| x == "--no-tray") {
unsafe { unsafe {
std::env::set_var("CLASH_VERGE_DISABLE_TRAY", "1"); std::env::set_var("CLASH_VERGE_DISABLE_TRAY", "1");
} }

View File

@@ -31,6 +31,8 @@ pub async fn check_singleton() -> Result<()> {
let client = ClientBuilder::new() let client = ClientBuilder::new()
.timeout(Duration::from_millis(500)) .timeout(Duration::from_millis(500))
.build()?; .build()?;
// 需要确保 Send
#[allow(clippy::needless_collect)]
let argvs: Vec<std::string::String> = std::env::args().collect(); let argvs: Vec<std::string::String> = std::env::args().collect();
if argvs.len() > 1 { if argvs.len() > 1 {
#[cfg(not(target_os = "macos"))] #[cfg(not(target_os = "macos"))]