refactor: optimize timer and network management with atomic operations

This commit is contained in:
Tunglies
2025-08-01 23:02:11 +08:00
parent 569e2d5192
commit 3eb2a5b3ef
6 changed files with 58 additions and 62 deletions

View File

@@ -8,11 +8,10 @@ pub fn use_script(
name: String,
) -> Result<(Mapping, Vec<(String, String)>)> {
use boa_engine::{native_function::NativeFunction, Context, JsValue, Source};
use parking_lot::Mutex;
use std::sync::Arc;
use std::{cell::RefCell, rc::Rc};
let mut context = Context::default();
let outputs = Arc::new(Mutex::new(vec![]));
let outputs = Rc::new(RefCell::new(vec![]));
let copy_outputs = outputs.clone();
unsafe {
@@ -25,7 +24,7 @@ pub fn use_script(
let level = level.to_std_string().unwrap();
let data = args.get(1).unwrap().to_string(context)?;
let data = data.to_std_string().unwrap();
let mut out = copy_outputs.lock();
let mut out = copy_outputs.borrow_mut();
out.push((level, data));
Ok(JsValue::undefined())
},
@@ -68,7 +67,7 @@ pub fn use_script(
// 直接解析JSON结果,不做其他解析
let res: Result<Mapping, Error> = parse_json_safely(&result);
let mut out = outputs.lock();
let mut out = outputs.borrow_mut();
match res {
Ok(config) => Ok((use_lowercase(config), out.to_vec())),
Err(err) => {